javascript - 替换方法 - 正则表达式逃脱必要吗?

时间:2013-08-12 05:04:54

标签: javascript

当我这样做时,尝试删除所有非字母字符,

var word = "thi^s";
var word2 = word.replace(/[^a-zA-z]/g, "");
console.log(word2);

为什么插入符号会滑落?我应该逃避它?

3 个答案:

答案 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]表示匹配除大写和小写英文字母之外的任何内容。