我怎样才能在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文档 。