![](/img/trans.png)
[英]Numeric array from string containing non-numeric characters in Javascript
[英]Javascript: Remove trailing chars from string if they are non-numeric
我正在将代码传递给API。 这些代码是字母数字,例如:M84.534D
我刚刚发现该API不使用结尾字母。 换句话说,API预期为M84.534,结尾没有字母D。 我遇到的问题是代码的格式不相同。 我可能有M84.534DAC或M84.534。
发送代码之前,我需要完成的工作是从代码末尾删除所有非数字字符,因此在示例中:
M84.534D->我需要通过M84.534
M84.534DAC->我也需要通过M84.534
是否有任何功能或正则表达式可以做到这一点?
预先谢谢大家。
您可以在下面使用正则表达式。 它将删除字符串末尾不是数字的任何内容
let code = 'M84.534DAC' console.log(code.replace(/[^0-9]+?$/, ""));
[^0-9]
匹配不等于数字的任何内容 +?
将匹配1到无限次 $
将匹配字符串的结尾 这样链接在一起,它将匹配字符串末尾的任何非数字,并用任何内容将其替换。
您可以使用以下表达式:
\D*$
如:
var somestring = "M84.534D".replace(/\\D*$/, ''); console.log(somestring);
说明: \\D
表示不是 \\d
,星号*
表示零次或多次(贪婪地),并且$
将表达式锚定到字符串的末尾。
给定有限的数据样本,此简单的正则表达式可以解决问题。 您只需将匹配项替换为空字符串即可。
我使用document.write
只是为了我们可以看到结果。 您可以根据需要使用此方法。
var testData = [ 'M84.534D', 'M84.534DAC' ] regex = /\\D+$/ testData.forEach((item) => { var cleanValue = item.replace(regex, '') document.write(cleanValue + '<br>') })
RegEx分解: \\D
=任何不是数字的值+
=一次或多次出现$
=行尾/输入
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.