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

标签 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?

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

最佳答案

模式

[-?|+?]

将精确匹配一个-+|?。你想要的是

[-+]?

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

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

/0|[-+][1-9]\d*/

关于javascript - 如何在 javascript 中使用正则表达式匹配并返回零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2928031/

相关文章:

javascript - 从 Flash 调用的 JavaScript 代码在哪个线程上执行?

javascript - 垂直内联的 Div 框

javascript - 将php代码放入yii框架的registerScript中

regex - sed提取两个字符串之间的文本

jquery 找到精确的字符串,不多也不少

javascript - 如何在 for 循环中复制/命名电子表格中单元格的 .setValue?

javascript - webpack 缩小 HtmlWebpackPlugin

java - 如何在正则表达式中获得优先级?

javascript - 如何比较字符串并检查阈值是否相等?

c# - 如何使用 DataAnnotations 和 Regex - c# - ASP.NET Core