允许正则表达式中的数字包括负数
Allow numbers in regex including the negative
我写了这个正则表达式来删除任何不是数字的东西。
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+).*/, "")
document.write(clean)
或者更有效地使用 match
:
clean = (input.match(/-?\d+/) || [])[0]
我写了这个正则表达式来删除任何不是数字的东西。
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+).*/, "")
document.write(clean)
或者更有效地使用 match
:
clean = (input.match(/-?\d+/) || [])[0]