javascript和c#中的正则表达式问题
Posted
技术标签:
【中文标题】javascript和c#中的正则表达式问题【英文标题】:Regex issuse in javascript and c# 【发布时间】:2018-04-12 16:27:36 【问题描述】:我必须构建一些正则表达式来验证一些文本。它必须在 javascript 和 c# 中工作。 我必须验证以下形式的文本:
文本 1 文本 2 文本:2500.50 - 有效
文本 1:2500.50 - 有效
文本 - 有效
text:2500.505 - 无效(只允许 2 位小数)
name4: - 无效(如果 ':' 存在,则必须提供值)
名称 - 有效
我最好的镜头是:
^((([\S \r\t\f]+)\s*:\s*([0-9]+[.][0-9]2)\s*)|[A-z0-9 \r\t\f\.\$\^\(\|\)\*\+\?\\\’\&\-\,]+\s*)+$
我必须验证的另一个文本是:
1234 - 有效
1234:3234.577843 - 无效(无效(仅允许 2 位小数))
1234:3234.54 - 有效
1234: - 无效(如果 ':' 存在则必须提供值)
123456:1234.45 - 无效(第一组必须有 4 位数字)。
对于这篇文章,我最好的镜头是:^(([0-9]4)\s*:\s*([0-9]+[.][0-9]2)\s*|[0-9]4\s*)+$
我希望你能帮助我。
谢谢
【问题讨论】:
您应该解释您的正则表达式失败的情况 它必须在 javascript 和 c# 中工作 这是我的正则表达式失败的情况:1234:3234.577843 - 无效(无效(仅允许 2 位小数))。它认为 7843 是另一个有效组 为什么这个问题被标记为R
?
【参考方案1】:
这个正则表达式怎么样?
^(\d4|[\w ]*[A-Za-z][\w ]*)(:\d+(.\d1,2)?)?$
看起来它给出了预期的结果,请参阅this demo。
【讨论】:
这个正则表达式没问题,但它必须验证整个文本。如果文本包含一个无效大小写,则整个文本无效。 This 文本有效且 here 无效的情况。我还需要 2 个正则表达式,一个用于带有文本 1 的案例,一个用于带有 1234 的 cate。以上是关于javascript和c#中的正则表达式问题的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式 - 将 C# 正则表达式转换为 JavaScript 正则表达式的量词的目标无效
将 c# 正则表达式转换为 javascript 正则表达式