如何匹配并在javascript中使用正则表达式返回零?

Hob*_*use 0 javascript regex

我试图从字符串中提取一个数字.数字可能为零.数字看起来像这样:'+ 123',' - 8'或'0'.

alert( '+123'.match(/[-?|+?]\d+/) );
alerts +123

alert( '-8'.match(/[-?|+?]\d+/) );
alerts -8

alert( '0'.match(/[-?|+?]\d+/) );
alerts null // why oh why?
Run Code Online (Sandbox Code Playgroud)

如何得到'0'.match(/ [ - ?| +?]\d + /)返回0而不是null?

ken*_*ytm 6

模式

[-?|+?]
Run Code Online (Sandbox Code Playgroud)

将完全匹配一个-,+,|?.你想要的是什么

[-+]?
Run Code Online (Sandbox Code Playgroud)

它将匹配一次-+一次或零次.

这将允许像'123'这样的数字也通过.如果您需要+号,请使用:

/0|[-+][1-9]\d*/
Run Code Online (Sandbox Code Playgroud)