Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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_Regex - Fatal编程技术网

Javascript 要测试是否只有ASCII字符的正则表达式

Javascript 要测试是否只有ASCII字符的正则表达式,javascript,regex,Javascript,Regex,我已经尝试过了,但对于UTF-8和ASCII,它都返回true: console.log(/[^w/]+/.test("abc123")) //true console.log(/[^w/]+/.test("ابت")) //true 我想你的意思是/[^\w]+/,但从我收集的信息来看,你真正想要的是: console.log(/^[\x00-\x7F]+$/.test("abc123")) //true console.log(/^[\x00-\x7F]+$/.test("abc_-8

我已经尝试过了,但对于UTF-8和ASCII,它都返回true:

 console.log(/[^w/]+/.test("abc123")) //true
 console.log(/[^w/]+/.test("ابت")) //true

我想你的意思是
/[^\w]+/
,但从我收集的信息来看,你真正想要的是:

console.log(/^[\x00-\x7F]+$/.test("abc123")) //true
console.log(/^[\x00-\x7F]+$/.test("abc_-8+")) //true
console.log(/^[\x00-\x7F]+$/.test("ابت")) //false
如果您实际上不想检查完整的ASCII集,可以使用:

console.log(/^[\w]+$/.test("abc123")) //true
console.log(/^[\w]+$/.test("abc_-8+")) //false
console.log(/^[\w]+$/.test("ابت")) //false
关于\x表示法

\xFF
是本例中使用的十六进制表示法(列表),用于范围
00
7F
,以匹配完整的ASCII字符集
\x00-\x7F
在功能上与
a-z
相同,因为它指定了一个范围,但是我们使用十六进制表示法来实现可靠的范围


\w
匹配“word”字符,这与
[a-z0-9\

相同。请注意,编写的正则表达式当前测试字符串是否不完全由
w
/
字符组成。您可能打算执行
\w
而不是
w/
。请尝试使用^\w+$,您需要强制它匹配完整的字符串\w应该只匹配拉丁语1。您可以使用\W进行反向匹配。这个
/^[^a-zA-Z0-9]+$/
@Sami-有很多ASCII字符不是字母或数字。@Sami如昆廷所述,这不是完整的ASCII字符集,请参阅我的更新版本answer@Sami
console.log(/^[\x00-\x7F]+$/.test(“ابت”))
不返回true-什么是您从中得到的不期望的true?如果OP确实意味着检查普通ASCII:有一个表达式:
/^[[:ASCII:]+$/