Javascript 匹配除少数字符外的ascii字符
我有一个与所有ascii字符匹配的regexp:Javascript 匹配除少数字符外的ascii字符,javascript,regex,Javascript,Regex,我有一个与所有ascii字符匹配的regexp: /^[\x00-\x7F]*$/ 现在我需要从这个范围中排除以下字符:,,“。我该如何做?您可以对不允许的字符使用负前瞻: /^((?!['"])[\x00-\x7F])*$/ (?!['”])是一种负前瞻,不允许在输入中使用单引号/双引号。您可以通过执行以下操作将字符从范围中排除: /^(?![\.])[\x00-\x7F]*$/ 在它前面加上(?![\.])以从正则表达式匹配中排除 或者在你的场景中 /^(?!['"])[\x00-\
/^[\x00-\x7F]*$/
现在我需要从这个范围中排除以下字符:
,,“
。我该如何做?您可以对不允许的字符使用负前瞻:
/^((?!['"])[\x00-\x7F])*$/
(?!['”])
是一种负前瞻,不允许在输入中使用单引号/双引号。您可以通过执行以下操作将字符从范围中排除:
/^(?![\.])[\x00-\x7F]*$/
在它前面加上(?![\.])
以从正则表达式匹配中排除
或者在你的场景中
/^(?!['"])[\x00-\x7F]*$/
编辑:
将正则表达式用大括号括起来以匹配多次
/^((?!['"])[\x00-\x7F])*$/
IMO迄今为止最简单的解决方案:
/^[\x00-\x21\x23-\x26\x28-\x7F]*$/
不,不是这样<代码>^(?![\.])[\x00-\x7F]*$
匹配一些不以句点开头的字符串。而\
在字符类中是多余的。@WiktorStribiżew谢谢,对其进行了多次更正以匹配它。您可以参考此链接:您能详细解释一下这个负前瞻在这个特定的正则表达式中是如何工作的吗?我读过lookarounds,但似乎无法理解这种特殊的lookarounds是如何工作的。特别是我想知道为什么它不是只适用于一个字符。提前谢谢<代码>['”]
将与'
或“
匹配(?!['“])
是负向前看,它断言下一个字符位置不是”
,“
当前输入位置后的下一个字符。请阅读关于以下内容的优秀教程: