我有这样的正则表达式:
("2*").replace(/[\+\-\*\/]$/g, "") -> "2"
即使它有全局修饰符,它也不会起作用:
("2**").replace(/[\+\-\*\/]$/g, "") -> "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]+$/, "");