#javascript #regex
#javascript #регулярное выражение
Вопрос:
Используя следующее регулярное выражение:
/,|[^0-9/.]/g
На regexr.com соответствует тому образцу, который я ищу. Однако, когда я вызываю его на JavaScript в своем приложении:
value = value.replace(/,|[^0-9/.]/g, '');
Он не охватывает следующие символы:
,./<>?;':"[]{}-_=
Есть ли что-то в JavaScript, о чем я не знаю, что предотвращает перехват этих символов?
Комментарии:
1. Можете ли вы опубликовать пример строки, которая не работает?
2. Это функция, которая вызывается для входной строки, поэтому попытка ввести что-то вроде 145< должна немедленно удалить символ <
3. Кажется, я не могу воспроизвести проблему, @Thomas. Посмотрите эту демонстрацию . Неверен ли вывод? Если да, то какой должен быть правильный? Не могли бы вы обновить вопрос более релевантным кодом? Это может быть что-то еще, что вызывает проблему.
4. каковы ваши ожидаемые входные и выходные данные? Можете ли вы поделиться примером?
5. вы хотите проверить только эти символы
,./<>?;':"[]{}-_=
, верно?
Ответ №1:
Я хочу сохранить все числа и
,
символ
Следующее заменит все, кроме числовых символов и символа запятой.
value = value.replace(/[^0-9,]/g, '');
Комментарии:
1. Нет, никаких кубиков. Ввод = 1552kkj< Вывод = 1552
2. Я хочу сохранить все числа и символ
3. Привет @ hwnd, нет, все еще не делаю этого. Полностью согласен с вашим подходом, просто не уверен, почему заменитель не выполняет свою работу. Он вытаскивает другие символы, такие как! @ # $% отлично.
4. Тогда это еще не все, что вы говорите, покажите свой код и то, что вы пытаетесь сделать.
5. Действительно, было. Это была проблема с некоторыми event.keyCodes, захваченными в другом цикле.