我可以使用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
答案 0 :(得分:11)
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()
实施,但他们可能需要查看unfinished implementation。但坦率地说,内置的Javascript .match()
功能应该足够了。
答案 1 :(得分:3)
要使用PHP函数,您必须向服务器发出HTTP请求(包含您要测试的任何数据),然后解析响应。
答案 2 :(得分:2)
RegExp.exec(string)
将有效。
试试这个:
var pattern= "/your pattern/";
var result = pattern.exec ( $("#phone").val() );
// true if match
答案 3 :(得分:0)
您应该使用String对象的preg_match
函数,而不是使用match
这是一个PHP函数。有关使用匹配功能的信息,请参阅Mozilla docs。