我写了这个正则表达式来删除任何不是数字的东西。
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/