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

时间:2013-08-02 13:17:27

标签: javascript regex

我试过这个但是UTF-8和ASCII都返回true:

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

1 个答案:

答案 0 :(得分:9)

我认为你的意思是/[^\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是十六进制表示法(列表here),在此示例中用于范围007F以匹配完整的ASCII字符集。 \x00-\x7Fa-z在功能上是一致的,因为它指定了一个范围,但是我们使用十六进制表示法来表示可靠的范围

\w匹配“字”字符,与[a-z0-9_]

相同