【发布时间】:2017-02-15 03:39:34
【问题描述】:
.*(\d{3}\-\d{3}\-\d{2}\-\d{2}|\d{3}\-\d{2}\-\d{2}\-\d{3}|\d{10}).* 这个模式运行良好。但是最近它突然停止在chrome和opera中工作。这里发生了什么 ?这里有什么问题,怎么错了? Opera 通知无效转义,在 chrome 中也是如此。当我在 js 中检查它时它工作正常。
<form>
<input type="text" pattern=".*(\d{3}\-\d{3}\-\d{2}\-\d{2}|\d{3}\-\d{2}\-\d{2}\-\d{3}|\d{10}).*">
<button>
Send
</button>
</form>
【问题讨论】:
-
你能告诉我们你是如何运行这个正则表达式的吗?
-
您不需要转义破折号(只需使用
-,而不是\-),这一定是您被警告过的,并且可能是功能障碍的原因。只有在字符类中按字面意思使用时,才需要转义破折号。 -
在 OP 中用代码 sn-p 更新
-
同时告诉我们确切的错误信息,而不是对其的解释。
-
其实@Aaron 是正确的。只需使用
-而不是\-就可以正常工作。