Удалить из строки все, кроме букв и цифр

У меня есть текстовое поле в пользовательском интерфейсе. Это не ограничивает пользователя вводить какие-либо специальные символы. Но при сохранении его в БД я хочу, чтобы все было удалено, кроме алфавитов и цифр.

Это можно сделать на стороне клиента (JavaScript) или на стороне сервера (Java) (хотя я хочу сделать это на стороне сервера).

я использовал

str.replaceAll("[^a-zA-Z0-9]", "");

выполнить задание, но выдаст ошибку:

Недопустимая последовательность символов

при вводе что-то типа "24\7". Есть ли способ справиться с такой escape-последовательностью, или я должен сделать это на стороне клиента (используя javascript)? означает удалить все нежелательные символы только в js?


person sandy    schedule 29.04.2013    source источник
comment
"24 \ 7" вы вводите строку, и вы хотите преобразовать ее в "24 7". Я прав?   -  person Smit    schedule 29.04.2013
comment
Это больше похоже на то, как создается str, чем на замену. Можете ли вы показать этот код?   -  person James Montagne    schedule 29.04.2013


Ответы (1)


Литеральные символы обратной косой черты должны встречаться парами, иначе Java будет ожидать символ управления кареткой (например, \t или \n).

String str = "24 \\ 7";
                  ^
person Reimeus    schedule 29.04.2013