Мне нужно вернуть true , если вводимое значение содержит любые цифры, а так же точку или запятую, или двоеточие.
Пробовал так, но работает некорректно:
val.match(/^[0-9]|\.|,|:*$/)
Во-первых, для проверки совпадения в строке можно воспользоваться соответствующим методом 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; }Вот и всё выражение должно быть: /[0-9.,:]/.
Продвижение своими сайтами как стратегия роста и независимости