简体   繁体   English

javascript 和 c# 中的正则表达式问题

[英]Regex issuse in javascript and c#

I have to build some regex to validate some text.我必须构建一些正则表达式来验证一些文本。 It must work in javascript and c#.它必须在 javascript 和 c# 中工作。 I have to validate text in the following form:我必须以以下形式验证文本:

text 1 text 2 text:2500.50 - valid文本 1 文本 2 文本:2500.50 - 有效

text 1:2500.50 - valid文本 1:2500.50 - 有效

text - valid文本 - 有效

text:2500.505 - not valid (only 2 decimals are allowed) text:2500.505 - 无效(只允许 2 位小数)

name4: - not valid (if ':' exists then value must be provided) name4: - 无效(如果 ':' 存在,则必须提供值)

name - valid名称 - 有效

My best shot was:我最好的镜头是:

^((([\S \r\t\f]+)\s*:\s*([0-9]+[.][0-9]{2})\s*)|[A-z0-9 \r\t\f\.\$\^\(\|\)\*\+\?\\\’\&\-\,]+\s*)+$

Another text i have to validate is:我必须验证的另一个文本是:

1234 - valid 1234 - 有效

1234:3234.577843 - not valid(not valid (only 2 decimals are allowed)) 1234:3234.577843 - 无效(无效(只允许 2 位小数))

1234:3234.54 - valid 1234:3234.54 - 有效

1234: - not valid (if ':' exists then value must be provided) 1234: - 无效(如果 ':' 存在,则必须提供值)

123456:1234.45 - not valid(first group must have 4 digits). 123456:1234.45 - 无效(第一组必须有 4 位数字)。

For this text my best shot was: ^(([0-9]{4})\\s*:\\s*([0-9]+[.][0-9]{2})\\s*|[0-9]{4}\\s*)+$对于这段文字,我的最佳镜头是: ^(([0-9]{4})\\s*:\\s*([0-9]+[.][0-9]{2})\\s*|[0-9]{4}\\s*)+$

I hope that you can help me.我希望你能帮助我。

Thanks谢谢

How about this regex ?这个正则表达式怎么样?

^(\d{4}|[\w ]*[A-Za-z][\w ]*)(:\d+(.\d{1,2})?)?$

Looks like it's giving the expected result, see this demo .看起来它给出了预期的结果,请参阅此演示

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

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