当我这样做时,尝试删除所有非字母字符,
var word = "thi^s";
var word2 = word.replace(/[^a-zA-z]/g, "");
console.log(word2);
为什么插入符号会滑落?我应该逃避它?
答案 0 :(得分:2)
您的大写/小写表达式不正确。我假设这个错误正在抛弃正则表达式引擎。将a-zA-z
替换为a-zA-Z
使用
var word = "thi^s";
var word2 = word.replace(/[^a-zA-Z]/g, "");
console.log(word2);
哪会产生:this
修改:正如Gumbo所述,A-z
实际上意味着A
(U + 0041)到z(U + 007A),其中包括^
(U + 005E)
答案 1 :(得分:1)
[]
内写的任何内容都是字符类。 [^a-zA-Z]
表示除a-z或A-z之外的任何内容。
使用\^
表示其字面含义。
答案 2 :(得分:0)
像这样:
var word = "thi^s";
var word2 = word.replace(/[\^a-zA-Z]/g, "");
console.log(word2); //=> ""
由于插入符号^
在字符类中具有特殊含义。
[^a-zA-Z]
表示匹配除大写和小写英文字母之外的任何内容。