我怎样才能在jQuery中使用preg_match?

我可以使用preg_match来validationjQuery中的电话号码吗? 这是我的代码不起作用

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

HTML

可以任何人帮助PLZ

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()基本相同的function。

因此,要在问题中进行与preg_match相同的validation:

 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()函数应该足够了。

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

最好使用JavaScript的本机正则表达式function 。

RegExp.exec(string)将起作用。

试试这个:

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

src: http : //javascriptkit.com/javatutors/redev3.shtml

您应该使用String对象的match函数,而不是使用preg_match (PHP函数)。 有关使用匹配函数的信息,请参阅Mozilla文档 。