我试图从字符串中提取一个数字.数字可能为零.数字看起来像这样:'+ 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?
模式
[-?|+?]
Run Code Online (Sandbox Code Playgroud)
将完全匹配一个-,+,|或?.你想要的是什么
[-+]?
Run Code Online (Sandbox Code Playgroud)
它将匹配一次-或+一次或零次.
这将允许像'123'这样的数字也通过.如果您需要+号,请使用:
/0|[-+][1-9]\d*/
Run Code Online (Sandbox Code Playgroud)