Javascript 用于匹配可打印ASCII符号的正则表达式?
我在看 我试图匹配所有可打印符号,因此范围如下(十进制): 到目前为止,我所看到的最好的是Javascript 用于匹配可打印ASCII符号的正则表达式?,javascript,node.js,regex,ascii,Javascript,Node.js,Regex,Ascii,我在看 我试图匹配所有可打印符号,因此范围如下(十进制): 到目前为止,我所看到的最好的是 ([!\"#$%&'()*+,\-.\/:;<=>?@[\\\]\^_`{\|}~"])+ ([!\“$%&'()*+,\-.\/:;?@[\\\]\^{\\\\}~)+ 肯定有更好的办法吗 在我的应用程序中,正则表达式对用户来说是部分可见的,因此我更喜欢更容易看到的东西(一般来说,更少的反斜杠和字符) 编辑:我所说的符号是指33到127之间的所有字符,但不包括字母和数字。以下字符
([!\"#$%&'()*+,\-.\/:;<=>?@[\\\]\^_`{\|}~"])+
([!\“$%&'()*+,\-.\/:;?@[\\\]\^{\\\\}~)+
肯定有更好的办法吗
在我的应用程序中,正则表达式对用户来说是部分可见的,因此我更喜欢更容易看到的东西(一般来说,更少的反斜杠和字符)
编辑:我所说的符号是指33到127之间的所有字符,但不包括字母和数字。以下字符类应该可以正常工作:
[!-\/:-@\[-`{-~]
它由上述4个范围组成,其中需要转义
/
和[
。以下字符类应该可以正常工作:
[!-\/:-@\[-`{-~]
它由4个提到的范围组成,其中
/
和[
需要转义。您当前的正则表达式非常好,没有更好的方法,但是如果您正在寻找一个较短的范围,您可以使用以下方法:
(?=[!-~])[\W_]
您当前的正则表达式非常好,实际上没有更好的方法,但是如果您正在寻找较短的正则表达式,您可以使用以下方法:
(?=[!-~])[\W_]
没有,但是这个问题的措辞很糟糕(按符号,OP不包括字母和数字)@Aaron:是的,我不太清楚这些被称为我的道歉。通常,可打印的ASCII字符与
[-~]匹配
更好的方法是,你想说的更短吗?退一步,你可以使用这些字符在块中的表示使它们可以打印。另外,为什么你要关注ASCII?JavaScript使用Unicode字符集的UTF-16编码。用户可能不理解“ASCII”当他们习惯了所有的计算机字符时没有,但是问题的措辞很糟糕(按符号,OP不包括字母和数字)@Aaron:是的,我不太清楚这些被称为我的道歉。通常,可打印的ASCII字符与[-~]匹配
更好的方法是,你想说的更短吗?退一步,你可以使用这些字符在块中的表示使它们可以打印。另外,为什么你要关注ASCII?JavaScript使用Unicode字符集的UTF-16编码。用户可能不理解“ASCII”当他们习惯于全部计算机化字符时,嗯,我想这是最好的?你会认为会有一种更简洁的方法来做到这一点。使用(?![\w\s]).
会更简洁,但效率也会更低。哦,我应该在帖子中提到这一点。对于这个应用程序来说,效率根本不重要。不确定我更喜欢哪个。那么我想我对这两个正则表达式得到了相同的结果:vs(?![\w\s])。
等于(?!\w)\S
但是两者都匹配的不止ascii符号。嗯,我想这是最好的?您可能会认为有一种更简洁的方法来实现这一点。使用(?![\w\S]).
会更简洁,但效率也会更低。哦,我应该在帖子中提到这一点。对于这个应用程序来说,效率根本不重要。不确定我更喜欢哪个。那么我想我对这两个正则表达式得到了相同的结果:vs(?![\w\s])。
等于(?!\w)\S
但是,两者都匹配多个ascii符号。