从字符串中提取嵌入数字 - JavaScript Regex

Noe*_*ams 2 javascript regex

这涉及从包含连字符的字符串中提取带符号数的一般问题.

有人可以提出以下正则表达式:

 "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)

谢谢!

pim*_*vdb 6

你可以.match改用:

"item-12-34".match(/-?\d+$/);  // ["-34"]
Run Code Online (Sandbox Code Playgroud)

正则表达式是"可能的连字符,然后是一个或多个数字,然后是字符串的结尾".