这涉及从包含连字符的字符串中提取带符号数的一般问题.
有人可以提出以下正则表达式:
"item205" => 205
"item-25 => -25
"item-name-25" => -25
Run Code Online (Sandbox Code Playgroud)
基本上,我们想要将数字提取到字符串的末尾,包括符号,而忽略其他地方的连字符.
以下内容适用于前两个,但最后返回"-name-25":
var sampleString = "item-name-25";
sampleString.replace(/^(\d*)[^\-^0-9]*/, "")
Run Code Online (Sandbox Code Playgroud)
谢谢!
你可以.match改用:
"item-12-34".match(/-?\d+$/); // ["-34"]
Run Code Online (Sandbox Code Playgroud)
正则表达式是"可能的连字符,然后是一个或多个数字,然后是字符串的结尾".