我尝试了这个方法,但它对UTF-8和ASCII都返回true:
console.log(/[^w/]+/.test("abc123")) //true
console.log(/[^w/]+/.test("ابت")) //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字符集,您可以使用以下代码:
```python import string print(string.ascii_letters + string.digits + string.punctuation) ```console.log(/^[\w]+$/.test("abc123")) //true
console.log(/^[\w]+$/.test("abc_-8+")) //false
console.log(/^[\w]+$/.test("ابت")) //false
关于 \x 记法
\xFF
是一个十六进制记法(列表在这里),用于匹配完整的 ASCII 字符集范围 00
到 7F
。 \x00-\x7F
在功能上与 a-z
相同,表示一个范围,但我们使用十六进制记法进行可靠的范围匹配。
\w
匹配“单词”字符,与 [a-z0-9_]
相同。
/^[^a-zA-Z0-9]+$/
怎么样? - Samiconsole.log(/^[\x00-\x7F]+$/.test("ابت"))
没有返回 true - 你从中得到了意料之外的 true 吗? - MDEV/^[[:ascii:]]+$/
。 - Jongware
w
和/
字符组成。您可能想要使用\w
而不是w/
。 - apsillers