当我这样做时,试图删除所有非字母字符,
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]
表示匹配除大写和小写英文字母之外的任何内容。