货币/百分比正则表达式

发布于 2024-12-04 14:32:25 字数 293 浏览 0 评论 0原文

我必须

€ 6.483,00

匹配像OR 这样的

18,50%  

再次

+65,86 %

在 Javascript 函数中

function(s) {
  return /^[0-9]?[0-9,\.]*$/.test(s);
}

值,我将其起草为:但是,显然,它不起作用......应该如何更改?

I have to match values like

€ 6.483,00

OR values like

18,50%  

OR, again,

+65,86 %

in a Javascript function, which I drafted as:

function(s) {
  return /^[0-9]?[0-9,\.]*$/.test(s);
}

but, obviously, it's not working... how should it be changed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

傲世九天 2024-12-11 14:32:25
^(?:€|\+)?\s*\d+(?:\.?\d{3})*(?:,\d+)?\s*%?\s*$

请参阅 Regexr 上的此处

字符串的开头,可选的 € 或 +,然后是可选的空格,然后应该是 at列出一位数字,后跟一个可选的点和三位数字,然后是一个可选的分数,可选的空格,可选的%更多可选的空格,然后是字符串的结尾,

^(?:€|\+)?\s*\d+(?:\.?\d{3})*(?:,\d+)?\s*%?\s*$

See it here on Regexr

Start of the string, an optional € or +, then optional whitespace, Then there should be at list one digit, followed by an optional dot and three digits, then an optional fraction, optional whitespace, optional % more optional whitespace and then the end of the string,

谷夏 2024-12-11 14:32:25
var sample = [
    "€ 6.483,00",
    "18,50%",
    "+65,86 %"
]
for(var i = 0; i < sample.length; i++) {
    var input = sample[i];
    var regex = /^(\u20ac ?)?\+?\d+(\.\d+)?(\,\d+)?( ?%)?$/
    console.log(input + "\t" + regex.test(input));
}

如果存在不匹配/不应匹配的情况,请告诉我。

var sample = [
    "€ 6.483,00",
    "18,50%",
    "+65,86 %"
]
for(var i = 0; i < sample.length; i++) {
    var input = sample[i];
    var regex = /^(\u20ac ?)?\+?\d+(\.\d+)?(\,\d+)?( ?%)?$/
    console.log(input + "\t" + regex.test(input));
}

If there are cases that do not/should not match then let me know.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文