Быстрое регулярное выражение с предупреждением - PullRequest
0 голосов
/ 20 января 2012

Я хочу разрешить только цифры и периоды (но только один период) без запятых, без альфа.

Таким образом, пользователь может ввести 300.00

Мне также нужно, если это возможно, вызвать оповещение (не предупреждение Windows, а просто предупреждение)

У меня есть:

**<input maxlength="12" type="text" name="r" id="price" style="display:none;width:212px;margin-left:5px;border-color:#F12B63;" size="30" placeholder="Type your price numbers only" onkeyup="this.value = this.value.replace (/\D+/, '')" />**

Ответы [ 2 ]

2 голосов
/ 20 января 2012

Для регулярного выражения попробуйте это: ^\d+\.?\d+$.

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

Чтобы проверить значение, в вашем коде проверки сделайте следующее:

//Add event handler using W3C event binding
document.getElementById("price").addEventListener("blur", function()
{
   //Test the value of the input field and whether it matches the regular expression,     where val is the value extracted from the field
  if(!this.value.match(/^\d+\.?\d+$/))
  {
    alert("Validation error, must be numeric");
  }
}, false);

РЕДАКТИРОВАТЬ: обратите внимание, что если вы хотите добавить привязку события в IE, вы можете использовать либо традиционную привязку события document.getElementById("price").onblur = function(){...}, либо модель привязки события IE: document.getElementById("price").attachEvent("onblur", function(){...}); обратите внимание, что использование attachEvent не присваивает объект this внутри функция обратного вызова, поэтому вам нужно получить объект события (window.event), а затем извлечь элемент, используя window.event.srcElement. См. http://www.quirksmode.org/js/events_advanced.html для справки

0 голосов
/ 20 января 2012

Я думаю var result=this.value.match(/[0-9]+\.?[0-9]+/); if(result==null){alert}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...