Javascript - 删除最后一个全局修饰符不起作用

时间:2014-10-25 20:04:43

标签: javascript regex

我有这样的正则表达式:

("2*").replace(/[\+\-\*\/]$/g, "") -> "2"

即使它有全局修饰符,它也不会起作用:

("2**").replace(/[\+\-\*\/]$/g, "") -> "2*"

你如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

您需要在角色类中使用quantifier+量词表示"一个或多个"倍。此外,您可以避免转义类中的某些字符并删除全局修饰符。

'2*****'.replace(/[-+*/]+$/, '') //=> "2"

说明:

[-+*/]+  # any character of: '-', '+', '*', '/' (1 or more times)
      $  # before an optional \n, and the end of the string

答案 1 :(得分:4)

您可以尝试:

"2**".replace(/[\+\-\*\/]+$/, "")

您也可以尝试:

"2**".replace(/[-+*/]+$/, "");

l'L'l的建议。或者使用否定:

"2**".replace(/[^0-9]+$/, "");