考虑一种非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和其他涉及浏览器和按键事件的解决方案都不适用。
如果您需要保留小数点以便处理浮点数,请使用以下方法
var s = "-12345.50 €".replace(/[^\d.-]/g, ''); // gives "-12345.50"
-
" 是什么意思? - jave.web"aaa 2.9px of bbb.".replace(/[^\d.-]/g, '')
→ 2.9.
应剥离可能包含数字的任何字符串。 - vsyncparseFloat("-1234.5.50 €".replace(/[^\d.-]/g, ''))
可能是这样的代码。 - A. Genedy如果您的脚本支持正则表达式,则可以使用正则表达式,例如:
myString.replace(/[^0-9]/g, '');
var myString = 'abc123.8<blah>';
myString = myString.replace(/[^\d]/g, ''); // 1238
类似于以下内容:
yourString = yourString.replace ( /[^0-9]/g, '' );
yourString = yourString.replace(/[^0-9.]/g, '');
。 - Maxim Maireplace(/[^0-9.,-]/g, ''
- Abdul Sadik Yalcin去除所有非数字字符但保留小数点(并返回该数字)的简短函数:
parseNum = str => +str.replace(/[^.\d]/g, '');
let str = 'a1b2c.d3e';
console.log(parseNum(str));
var mystring = mystring.replace(/[^0-9.]/g, '');
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>
尝试
myString.match(/\d/g).join``
var myString = 'abc123.8<blah>'
console.log( myString.match(/\d/g).join`` );
js 标记模板
的文章。 - Kamil Kiełczewski""
调用 join 吗? - 1252748$123,232,122.11
(1232332122.11)或USD 123,122.892
(123122.892)或任何货币,如₹ 98,79,112.50
(9879112.5),包括小数点。str = str.match(/\d|\./g).join('');
\D
的更多信息可以在哪里找到? - p.campbellreplace
在所有浏览器中都支持这个确切的语法吗?好像我记得在旧版本的IE中,当我使用jQuery获取文本并使用它时,会出现“对象没有方法'replace'”的错误...或者类似的情况。 - cwd