Javascript просто регулярное выражение не работает - PullRequest
0 голосов
/ 17 мая 2010

У меня есть этот код, он выглядит хорошо и действительно простой, но я не могу заставить его работать:

function checkValid(elem){

 var abc = elem.value;

 var re = "/[0-9]/";

 var match = re.test(abc);

 alert(match);
}

Это соответствует 0 и 9, но не 1 к 8, что здесь не так? Спасибо.

Ответы [ 3 ]

3 голосов
/ 17 мая 2010

Попробуйте удалить двойные кавычки ...

 var re = /[0-9]/;
3 голосов
/ 17 мая 2010

re - это строка, а не объект RegExp.

Вам нужно использовать литерал регулярных выражений вместо строкового литерала, например:

var re = /[0-9]/;

Кроме того, это вернет true для любой строки, которая содержит число в любом месте строки.
Вы, вероятно, хотите изменить его на

var re = /^[0-9]+$/;
0 голосов
/ 17 мая 2010

Используйте \ d, чтобы сопоставить число и сделать его регулярным выражением, а не строкой:

var abc = elem.value;
var re = /\d/;
var match = re.test(abc);
alert(match);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...