javascript - 允许正则表达式中的数字包括负数

标签 javascript jquery regex negative-number

我写了这个正则表达式来删除任何不是数字的东西。

     var dataTest = data.replace(/[^0-9]/gi, '');

它将“abc123xyz”转换为“123”

但是现在我也想涵盖负数:-

      var dataTest = data.replace(/[^-0-9]/gi, ''); 

但它也允许 - 介于两者之间。 它将“abc123-xyz”转换为“123-” 我希望它转换为“123”

但是,如果用户输入“-123abc”,它应该更改为“-123”。

我在 javascript 中调用 focusout 事件的这段代码。我也会接受 jquery 中的解决方案。

最佳答案

一种选择是捕获数字并删除其他所有内容:

input = "abc-123def"

clean = input.replace(/.*?(-?\d+).*/, "$1")

document.write(clean)

或者更有效地使用 match:

 clean = (input.match(/-?\d+/) || [])[0]

关于javascript - 允许正则表达式中的数字包括负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32178257/

相关文章:

javascript - 使用悬停事件发送垃圾邮件时元素可见性问题

javascript - 如何在 HTML 页面的可打印版本中显示隐藏内容

java - Thymeleaf 、 JQuery 和消息属性

regex - 抓包组号

javascript - 在 AngularJS 中通过模态编辑对象 - 使用临时对象?

javascript - 输入在空输入上返回 true

javascript - 使用 jquery 更改了选择上的选项,但使用 Chrome 却出现奇怪的结果

regex - 在 Excel-VBA 中使用 RegEx 替换文本

regex - 使用 grep 访问文件中的单词

javascript - 尝试将此范围滑动条添加到 .hta 文件时出现错误 "$ is undefined"