考虑一个非dom场景,您希望使用JavaScript/ECMAScript从字符串中删除所有非数字字符。应该保留0 - 9范围内的任何字符。
var myString = 'abc123.8<blah>';
//desired output is 1238
如何在纯JavaScript中实现这一点?请记住,这是一个非dom场景,因此jQuery和其他涉及浏览器和按键事件的解决方案并不适用。
考虑一个非dom场景,您希望使用JavaScript/ECMAScript从字符串中删除所有非数字字符。应该保留0 - 9范围内的任何字符。
var myString = 'abc123.8<blah>';
//desired output is 1238
如何在纯JavaScript中实现这一点?请记住,这是一个非dom场景,因此jQuery和其他涉及浏览器和按键事件的解决方案并不适用。
当前回答
大致如下:
yourString = yourString.replace ( /[^0-9]/g, '' );
其他回答
try
myString.match(/\d/g).join``
var myString =“abc123.8”等等 游戏机/ log (myString . match (d / g)。join ();
您可以使用RegExp替换所有非数字字符:
var myString = 'abc123.8<blah>';
myString = myString.replace(/[^\d]/g, ''); // 1238
如果脚本实现支持正则表达式,请使用正则表达式。喜欢的东西:
myString.replace(/[^0-9]/g, '');
这一点,
.match(/\d|\.|\-/g).join('');
处理两者和。也,
例子:
“平衡- 100美元,00.50”.match (\ d。| | \ \ / / g) . join ();
输出
10000.50
在Angular / Ionic / VueJS中——我只是想出了一个简单的方法:
stripNaN(txt: any) {
return txt.toString().replace(/[^a-zA-Z0-9]/g, "");
}
视图上的用法:
<a [href]="'tel:'+stripNaN(single.meta['phone'])" [innerHTML]="stripNaN(single.meta['phone'])"></a>