我需要在 HTML 输入中使用这个正则表达式(取自以逗号或逗号和空格分隔的项目列表的正则表达式):
[^,\s][^\,]*[^,\s]*
所以我将其设置为输入:
<input type="text" class="form-control" id="input" name="input" data-ng-model="myModel" pattern="[^,\s][^\,]*[^,\s]*">
但我在控制台中收到此错误:
Pattern attribute value [^,\s][^\,]*[^,\s]* is not a valid regular expression: Uncaught SyntaxError: Invalid regular expression: /[^,\s][^\,]*[^,\s]*/: Invalid escape
该正则表达式有什么问题?
顺便说一句,我正在使用 Angular 1.5。
您需要删除逗号之前的转义反斜杠并使用
pattern="[^,\s][^,]*[^,\s]*"
这是必要的,因为 FF 和 Chrome 编译了pattern
regex 使用 ES6 regex 语法规范,并使用/u
编译 RegExp 对象时的修饰符。这对模式有一定的限制。在这种情况下,在字符类中转义了常规符号,而不是特殊的元字符(逗号)。因此,删除逃逸可以解决问题。
input:valid {
color: black;
border: 5px solid #dadadada;
border-radius: 7px;
}
input:invalid {
color: navy;
outline: none;
border-color: #ff1050;
box-shadow: 0 0 10px #ff0000;
}
<form>
<input type="text" class="form-control" id="input" name="input" data-ng-model="myModel" pattern="[^,\s][^,]*[^,\s]*">
</form>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)