4

我可以使用 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" />

4

4 回答 4

12

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的项目,旨在用 Javascript 实现 PHP 函数。快速浏览一下他们的网站会发现,尽管他们目前还没有完全可用的preg_match()实现,但他们有一个未完成的实现,您可能想看看。但坦率地说,内置的 Javascript.match()功能应该绰绰有余。

于 2011-05-17T13:33:08.690 回答
3

要使用 PHP 函数,您必须向服务器发出 HTTP 请求(使用您想要测试的任何数据),然后解析响应。

最好使用JavaScript 的原生正则表达式功能

于 2011-05-17T13:30:22.050 回答
2

RegExp.exec(string)将工作。

尝试这个:

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

来源:http : //javascriptkit.com/javatutors/redev3.shtml

于 2011-05-17T13:33:36.117 回答
0

而不是 using preg_match,这是一个 PHP 函数,您应该使用 String 对象的match函数。有关使用 match 函数的信息,请参阅Mozilla 文档

于 2011-05-17T13:32:09.090 回答