Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于匹配可打印ASCII符号的正则表达式?_Javascript_Node.js_Regex_Ascii - Fatal编程技术网

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符号。