4

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

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

1 回答 1

14

我认为您的意思是/[^\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是此示例中用于匹配完整 ASCII 字符集的范围的十六进制表示法(此处列出)。在功能上与指定范围相同,但是我们使用十六进制表示法来进行可靠的范围007F\x00-\x7Fa-z

\w匹配 'word' 字符,与[a-z0-9_]

于 2013-08-02T13:21:53.257 回答