【发布时间】:2012-01-31 14:19:35
【问题描述】:
我正在尝试定义 ASP.NET 验证器正常运行所需的正则表达式。目前使用下面的表达式,我能够在 Firefox 中正确验证以下示例字符串,但不能在 IE 中验证
12{2}12{0-9}1{12,13}
使用
(({\d+\})*|(\d)*|({(\d+,)+\d+\})*|({(\d+)\-(\d+)\})*)+
经过一些研究,这似乎是由于前瞻错误造成的,但由于我对使用正则表达式相当陌生,我不明白如何正确修改它以解决该错误?
请给我更高的知识!!
编辑: 表达式必须匹配这三个可选的单独组件,它们可以以任何顺序出现在字符串中。我试图提出一个描述每个单独组件的表达式,然后将它们合并为一个表达式。
{n} regex {\d+\} to match sample {423} optional digits
{n,n,n} regex {(\d+,)+\d+\} to match sample set of digit {24,25,26}
{n-n} regex {(\d+)\-(\d+)\} to match sample range of {0-9}
individual digits (\d) to match sample 232
编辑 2: 最后我将使用这个表达方式,特别感谢 woohoo
((\d*\#*\**)*\{((\d*\#*\**)+|(\d*\#*\**)+\-(\d*\#*\**)+|((\d*\#*\**)+\,)+(\d*\#*\**)+)\}(\d*\#*\**)*)+
表达式在每个位置都支持数字 # 和 *。
【问题讨论】:
-
这是在服务器上的 C# 中完成的,还是在浏览器中的 JavaScript 中完成的?如果在服务器上使用 C#,那么浏览器的选择对此没有影响。
-
它是在浏览器和服务器上完成的,因为我使用的是 asp.net 正则表达式验证器组件,但它在浏览器上失败
-
您最好删除 C# 和 asp.net 标签,并添加 javascript 和 ie 标签。我也会在浏览器中查看源代码,然后复制 javascript 并将其粘贴到这篇文章中。
-
所有其他正则表达式验证都是使用 asp.net 原生组件完成的
-
当我说“删除标签”时,我指的是这篇文章中的标签,而不是代码中的 HTML/ASP.NET 标签。
标签: javascript regex internet-explorer validation