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