正则表达式类中存在无效字符报错求助
正则语法错误修复方案
你的正则报错是因为字符类[]中的-位置错误:在字符类里,-如果放在两个字符中间,会被当作「范围运算符」(比如a-z表示a到z的字母),而不是普通的连字符,这就导致了语法非法。另外你的正则里重复写了*,可以简化。
修正后的两种写法:
方案1:调整-的位置(推荐)
把-移到字符类的开头或结尾,这样它会被识别为普通字符:
<input pattern='[-*$&%^#@!()_+A-Za-z0-9]+'>
或者移到结尾:
<input pattern='[*$&%^#@!()_+A-Za-z0-9-]+'>
方案2:转义-
在字符类里用\转义-,注意HTML属性里需要把\写成\\(因为HTML会解析单个反斜杠):
<input pattern='[*$&%^#@!()\-_+A-Za-z0-9]+'>
两种方案都能解决「invalid character in class」的报错,同时保留你原本想要允许的所有字符。
内容的提问来源于stack exchange,提问作者Martin4523
相关产品推荐
相关产品推荐

