我试图找到一个正则表达式,允许 可打印的ASCII字符 ,除了 - " / \ []:; | =,+ *? < >
字符串长度必须为1-25
这将有效:
/^[^\\[\]\:\;\|\=\,\/+\*\?<>\"]{1,25}$/
但它也会匹配非ASCII 字符
答案 0 :(得分:2)
您可以使用
/^(?:(?![:[\];|\\=,\/+*?<>"])[ -~]){1,25}$/
请参阅regex demo
<强>详情
^
- 字符串开头(?:
- 外部分组,用于匹配量化的前瞻限制的ASCII字符范围
(?![:[\];|\\=,\/+*?<>"])
- 下一个字符不能是字符类中定义的字符(:
,[
,]
,;
,|
,\
,=
,,
,/
,+
,*
,?
,
<
,>
和"
)[ -~]
- 任何可打印的ASCII ){1,25}
- 1到25次出现$
- 字符串结尾