Javascript:如果字符串是非数字的,则从字符串中删除尾随字符

问题描述 投票:0回答:3

我将代码传递给API。这些代码是字母数字,如下所示:M84.534D

我刚刚发现API不使用尾随字母。换句话说,API期待M84.534,最后没有字母D.我遇到的问题是代码的格式不一样。我可能有M84.534DAC或M84.534。

在发送代码之前我需要完成的是从代码末尾删除任何非数字字符,因此在示例中:

M84.534D - >我需要通过M84.534

M84.534DAC - >我还需要通过M84.534

是否有任何功能或正则表达式可以做到这一点?

提前谢谢大家。

javascript regex
3个回答
2
投票

你可以使用下面的正则表达式。它将从字符串末尾删除任何不是数字的内容

let code = 'M84.534DAC'

console.log(code.replace(/[^0-9]+?$/, ""));
  • qazxsw poi匹配任何不是数字的东西
  • [^0-9]将在1和无限次之间匹配
  • +?将匹配字符串的结尾

如此链接在一起,它将匹配字符串末尾的任何非数字,并将其替换为空。


1
投票

您可以使用以下表达式:

$

如:

\D*$

说明:var somestring = "M84.534D".replace(/\D*$/, ''); console.log(somestring);代表不是\D,明星\d意味着零次或多次(贪婪),而*将表达式锚定在字符串的末尾。


0
投票

鉴于您的有限数据样本,这个简单的正则表达式可以解决问题。您只需用空字符串替换匹配项。

我已经使用了$,所以我们可以看到结果。你以任何你想要的方式使用它。

document.write

RegEx细分:var testData = [ 'M84.534D', 'M84.534DAC' ] regex = /\D+$/ testData.forEach((item) => { var cleanValue = item.replace(regex, '') document.write(cleanValue + '<br>') }) =任何不是数字的东西\D =一次或多次出现+ =行尾/输入

© www.soinside.com 2019 - 2024. All rights reserved.