1

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

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

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

4

3 回答 3

2

您的大写/小写表达式不正确。我假设这个错误正在抛出正则表达式引擎。替换a-zA-za-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)。

于 2013-08-12T05:08:29.440 回答
1

里面写的任何东西[]都是字符类。[^a-zA-Z]指 az 或 Az 以外的任何东西。

使用\^它的字面意思。

于 2013-08-12T05:11:21.080 回答
0

让它像这样:

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

console.log(word2); //=> ""

由于插入符号^在字符类中具有特殊含义。

[^a-zA-Z]表示匹配除大写和小写英文字母之外的任何内容。

于 2013-08-12T05:07:14.913 回答