当我这样做时,试图删除所有非字母字符,
var word = "thi^s";
var word2 = word.replace(/[^a-zA-z]/g, "");
console.log(word2);
为什么插入符号会滑过?我应该逃避它吗?
当我这样做时,试图删除所有非字母字符,
var word = "thi^s";
var word2 = word.replace(/[^a-zA-z]/g, "");
console.log(word2);
为什么插入符号会滑过?我应该逃避它吗?
您的大写/小写表达式不正确。我假设这个错误正在抛出正则表达式引擎。替换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)。
里面写的任何东西[]都是字符类。[^a-zA-Z]指 az 或 Az 以外的任何东西。
使用\^它的字面意思。
让它像这样:
var word = "thi^s";
var word2 = word.replace(/[\^a-zA-Z]/g, "");
console.log(word2); //=> ""
由于插入符号^在字符类中具有特殊含义。
[^a-zA-Z]表示匹配除大写和小写英文字母之外的任何内容。