2016-01-11 3 views
-1

У меня есть это регулярное выражение:Regex не работает на Google Chrome

function removeNonGold(input){ 
    var price = input.value 
    var id = input.id 
    price = price.replace("^?\d+(\.\d{1})?",'') 
    document.getElementById(id).value = price 
} 

, которая работает над этим полем ввода:

<input class="form-control" onkeyup="removeNonGold(this)" min="0.01" step="0.01" lang="nb" type="number" name="service[promote_price]" id="service_promote_price"> 

Он должен удалить все символы, которые не являются числами или точками.

Он отлично работает в Safari и Firefox, но он продолжает удалять точки на хроме.

+5

это не RegExp, это строка ... –

+4

вы хотите 'цена = price.replace (/^\ d + (\ \ d {1}) /, '') '... если' price' не является строкой, а какой-то созданный вами объект, который имеет определенную функцию замещения. –

+1

Несмотря на то, что введенный выше вход не позволяет вводить нечисловый ввод в хроме по умолчанию, поэтому я не делаю Не понимаю, в чем проблема. –

ответ

0

Вы должны использовать набор символов [^\d.] для вашего регулярного выражения. Это будет соответствовать, по желанию, «любые символы, которые не являются цифрами или точками». Вот как его использовать?.?

price = price.replace(/[^\d.]/g, ''); 
+0

даже при использовании этого регулярного выражения хром легко все, когда я набираю точку. –