繁体   English   中英

使用Regex验证Javascript中的价格

[英]Validation of price in Javascript using Regex

我需要检查字符串是否有效。 在某些语言环境中,“。” 与“,”互换,分隔符可以是数千或数百。 例如:有效:

1234  
1,234
1.234  
1,23,334
1.23.334 
1,23,334.00
1.23.334,00

无效:

1,23...233
1,,23
etc

我使用的正则表达式是

/(\d+(?:[\.,](?![\.,])\d+)*)/g

但这给了我两场比赛“1,23 ... 233”i,e“1,23”和“233”作为比赛,我不想为此返回任何比赛。 是我一直在研究的正则表达式。 我有什么想做的,只要有“。” 或“,”下一个字符不应该是“。” 或“,”它应该是一个数字。

好像你想要这样的东西,

^\d+(?:\.\d+)?(?:,\d+(?:\.\d+)?)*$

DEMO

要么

^(?!.*(,,|,\.|\.,|\.\.))[\d.,]+$

开始时的否定前瞻声明sting不会包含连续的逗号或点或点和逗号。

DEMO

你可以这么做。

^\d+(?:[.,]\d+)*$

试试这个。看看演示。

https://regex101.com/r/tX2bH4/61

var re = /^\d+(?:[.,]\d+)*$/gm;
var str = '1234\n1,234\n1.234\n1,23,334\n1.23.334\n1,23,334.00\n1.23.334,00\n1,23...233\n1,23.';
var m;

while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM