我正在尝试从字符串中提取数字。该数字可能为零。数字显示如下:“+123”、“-8”或“0”。
alert( '+123'.match(/[-?|+?]\d+/) );
alerts +123
alert( '-8'.match(/[-?|+?]\d+/) );
alerts -8
alert( '0'.match(/[-?|+?]\d+/) );
alerts null // why oh why?
如何让 '0'.match(/[-?|+?]\d+/) 返回 0 而不是 null?
最佳答案
模式
[-?|+?]
将精确匹配一个-
、+
、|
或?
。你想要的是
[-+]?
它将匹配 -
或 +
一次或零次。
这也将允许像“123”这样的数字通过。如果您需要 + 号,请使用:
/0|[-+][1-9]\d*/
关于javascript - 如何在 javascript 中使用正则表达式匹配并返回零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2928031/