Может создавать функции в тестере регулярных выражений, но не в приложении

#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, захваченными в другом цикле.

Ответ №2:

Это может помочь вам, если вы ищете только те символы, которые не являются цифрами, не буквами и не пробелом. Он охватывает все упомянутые вами символы.

 [^((0-9)|(a-z)|(A-Z)|s)]
 

Демонстрация на regexr и regex101

Примечание: удалите лишние из шаблона в соответствии с вашими потребностями.