输入元素模式属性的Javascript正则表达式在reFiddle上有效,但在页面上无效



我正在尝试使用以下regex为填写表单的用户提供一些基本反馈:

/+?[(]?(?:[0-9 ][a-z]?[()-.]?){3,}/ig

(我知道关于电话号码正则表达式的这一点;我在这里的目的只是通过突出显示绿色或红色的输入框来为用户提供一些反馈,而不是确保输入真实的电话号码)。

这个正则表达式的行为似乎正是我想要的https://regex101.com/r/mpL6vv/1,但当我在页面上使用它时,它似乎发现所有内容都无效:

<input type='tel' name='phone' required pattern='/+?[(?:]?([0-9a-z ][()-.]?){3,}/ig' />

这是Zurb基金会Abide表格验证的一部分。该页面有许多其他具有各种模式的输入,它们似乎都能正确地验证/无效。

有人能指出我做错了什么,导致正则表达式模式使所有内容无效吗?谢谢

不能在html pattern对象中使用javascript分隔符(或修饰符)。要使模式工作,请删除分隔符和javascript修饰符,如:

+?[(?:]?([0-9a-z ][()-.]?){3,}

请在此处查看其实际操作:http://jsfiddle.net/remus/dPZC7/(按"提交"进行检查)。

最新更新