如何匹配行尾或行尾的任何非单词字符

时间:2013-03-13 13:15:02

标签: regex

使用正则表达式,我想匹配一行末尾的所有非单词字符,或者,如果没有非单词字符,则只匹配该行的结尾。

这就是我认为应该如此简单:

/\W*$/

即匹配零个或多个非单词字符,然后是行尾。

我在http://gskinner.com/RegExr/尝试过,但事情并非那么简单。

然后,更进一步,我还想匹配行尾的空格,如下所示:

/[\W\s]*$/

即,匹配集合中的零个或多个字符,非单词字符和空格字符,然后是行尾。

当然,这也不起作用。

在一天结束时,我想使用javascript替换任何不是字母数字字符的行尾的任何内容。

2 个答案:

答案 0 :(得分:1)

.replace方法与直接正则表达式一起使用,而不是字符串。 ^是“非”字符。所以任何东西都不是字母数字。

var good = bad.replace(/[^\w]*$/g, "");

证明:

> bad = "asd$f   "
"asd$f   "
> bad.replace(/[^\w]*$/g, "")
"asd$f"

答案 1 :(得分:1)

我的第一种方法是正确的。只是正则表达式工具没有很好地发挥作用。

/\W*$/

/[^\w]*$/

这显然是一样的。

使用this jQuery终端进行测试。