我发现了一篇博客文章,其中展示了一种为国际电话号码创建验证的方法。提供的代码是:
jQuery.validator.addMethod('intlphone', function(value) { return (value.match(/^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}(\s*(ext|x)\s*\.?:?\s*([0-9]+))?$/)); }, 'Please enter a valid phone number');
我相信它曾经对我有用,但发生了一些变化——可能是更新版本的 jQuery——我收到了这个错误:
Uncaught SyntaxError: Invalid regular expression: /^((+)?[1-9]{1,2})?([-s.])?(((d{1,4}))|d{1,4})(([-s.])?[0-9]{1,12}){1,2}(s*(ext|x)s*.?:?s*([0-9]+))?$/: Nothing to repeat
我用我正在使用的项目创建了一个 JSBin,但我没有任何运气摆脱错误。
如何修复旧的 javascript 以使用 jQuery Validate 验证国际电话号码?
ps:我相信我已经尝试使用以前版本的 jQuery 运行它,但我仍然收到错误消息。我不确定发生了什么变化。
最终使用了这个:
jQuery.validator.addMethod('intlphone', function(value) { return (value.match(/^((\+)?[1-9]{1,2})?([\-\s\.])?((\(\d{1,4}\))|\d{1,4})(([\-\s\.])?[0-9]{1,12}){1,2}(\s*(ext|x)\s*\.?:?\s*([0-9]+))?$/)); }, 'Please enter a valid phone number');