我将代码传递给API。这些代码是字母数字,如下所示:M84.534D
我刚刚发现API不使用尾随字母。换句话说,API期待M84.534,最后没有字母D. 我遇到的问题是代码的格式不一样。 我可能有M84.534DAC或M84.534。
在发送代码之前我需要完成的是从代码末尾删除任何非数字字符,所以在示例中:
M84.534D - >我需要通过M84.534
M84.534DAC - >我还需要通过M84.534
是否有任何功能或正则表达式会这样做?
提前感谢所有人。
答案 0 :(得分:2)
您可以使用下面的正则表达式。它将从字符串末尾删除任何不是数字的内容
let code = 'M84.534DAC'
console.log(code.replace(/[^0-9]+?$/, ""));

[^0-9]
匹配任何不是数字的人+?
将匹配1到无限次$
将匹配字符串的结尾如此链接在一起,它将匹配字符串末尾的任何非数字,并将其替换为空。
答案 1 :(得分:1)
您可以使用以下表达式:
\D*$
如:
var somestring = "M84.534D".replace(/\D*$/, '');
console.log(somestring);

<强>说明:强>
\D
代表不 \d
,明星*
表示零次或多次(贪婪),$
将表达式锚定到结尾字符串。
答案 2 :(得分:0)
鉴于您的有限数据样本,这个简单的正则表达式可以解决问题。你只需用空字符串替换匹配。
我已经使用了document.write
,因此我们可以看到结果。你可以用任何你想要的方式使用它。
var testData = [
'M84.534D',
'M84.534DAC'
]
regex = /\D+$/
testData.forEach((item) => {
var cleanValue = item.replace(regex, '')
document.write(cleanValue + '<br>')
})
RegEx细分:
\D
=任何不是数字的东西
+
=一次或多次出现
$
=行/输入结束