Js RegExp Проверка на числа и некотрые символы

117
06 апреля 2021, 14:10

Мне нужно вернуть true , если вводимое значение содержит любые цифры, а так же точку или запятую, или двоеточие. Пробовал так, но работает некорректно:

val.match(/^[0-9]|\.|,|:*$/)
Answer 1

Во-первых, для проверки совпадения в строке можно воспользоваться соответствующим методом RegExp#test(), который возвращает true (если совпадение найдено) или false (если совпадение не найдено).

Выражение ^[0-9]|\.|,|:*$ вернёт true, если строка начинается с цифры (^[0-9]), содержит . или , (\.|,) или заканчивается на 0 и более знаков : (:*$). Из-за :*$ совпадение будет найдено в любой строке, так как в любой строке есть конец строки.

Вам нужно одно из двух выражений:

  • Если в строке помимо любых других символов есть цифра, точка, запятая или двоеточие - if (/[\d.,:]/.test(str)) { return true; }
  • Если в строке могут быть только цифры, точки, запятые или двоеточия - if (/^[\d.,:]*$/.test(str)) { return true; } или - если строка не может быть пустой - if (/^[\d.,:]+$/.test(str)) { return true; }
Answer 2

Вот и всё выражение должно быть: /[0-9.,:]/.

READ ALSO
Двойные круглые скобки - что означают?

Двойные круглые скобки - что означают?

Помогите пожалуйста понять синтаксис выражения на Javascript в React (Mobx) :

87
Как удалить слово при подключении удаленного javascript?

Как удалить слово при подключении удаленного javascript?

На сайте подключен внешний удаленный javascript таким образом:

94
Не понятное поведение скрола элемента на Safari (ios)

Не понятное поведение скрола элемента на Safari (ios)

Делаю чатПосле того как приходит новое сообщение, прокручиваю скролл до конца страницы, что бы отобразить его:

99
HTML не открывает JS файл

HTML не открывает JS файл

Мой url /course/{id}"Из за того что в url есть id, html страница игнорирует <script>

110