Как я могу использовать preg_match в JQuery? - PullRequest
5 голосов
/ 17 мая 2011

Могу ли я использовать preg_match для проверки номера телефона в jQuery? Вот мой код, который не работает

if (!preg_match("/^[0-9]{3}-|\s[0-9]{3}-|\s[0-9]{4}$/", phone.val() ))  {
            phone.addClass("needsfilled");
            phone.val(phonerror);
        }

HTML <input id="phone" type="text" value="" name="phone" />

Может ли кто-нибудь помочь PLZ

Ответы [ 4 ]

11 голосов
/ 17 мая 2011

Javascript включает механизм регулярных выражений, доступ к которому осуществляется с помощью функций string.match(), string.replace() и string.split().

Например:

var mystring = "this is a sentence";
mystring = mystring.replace(/sentence/,'string');

var matches = mystring.match(/\b\w+\b/);

Это должно предоставить вамс по существу той же функциональностью, что и preg_match().

Так что сделайте ту же проверку, что и preg_match в вашем вопросе:

if(!phone.val().match(/^[0-9]{3}-|\s[0-9]{3}-|\s[0-9]{4}$/)) {
     phone.addClass("needsfilled");
     phone.val(phonerror);
}

Если вы абсолютно настаиваете на наличии функции с именем preg_match()которая работает точно так же, как версия PHP, есть проект под названием PHPJS , который направлен на реализацию функций PHP в Javascript.Беглый взгляд на их сайт показывает, что, хотя в настоящее время у них нет полностью работающей preg_match() реализации, у них есть незаконченная реализация , на которую вы, возможно, захотите взглянуть.Но, честно говоря, встроенная функция Javascript .match() должна быть более чем достаточной.

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

Чтобы использовать функцию PHP, вам нужно будет сделать HTTP-запрос к серверу (с любыми данными, которые вы хотите протестировать), а затем проанализировать ответ.

Лучше использовать Встроенные в JavaScript функции регулярных выражений .

2 голосов
/ 17 мая 2011

RegExp.exec(string) будет работать.

попробуйте это:

var pattern= "/your pattern/";
var result = pattern.exec ( $("#phone").val() );
// true if match

Источник: http://javascriptkit.com/javatutors/redev3.shtml

0 голосов
/ 17 мая 2011

Вместо использования preg_match, который является функцией PHP, вы должны использовать функцию match объекта String.См. Mozilla docs для получения информации об использовании функции соответствия.

...