ASP.正则表达式可以在.NET中工作,但不能在JS中工作
ASP.NET MVC Data Annotations Regular expression works in .NET but not in JS
我试图使用这个答案https://stackoverflow.com/a/164994/4950中给出的英国邮政代码正则表达式在一个正则表达式数据注释中用于ASP中的模型验证。净MVC。
这是正则表达式:
(GIR 0AA)|((([A-Z-[QVX]][0-9][0-9]?)|(([A-Z-[QVX]][A-Z-[IJZ]][0-9][0-9]?)|(([A-Z-[QVX]][0-9][A-HJKSTUW])|([A-Z-[QVX]][A-Z-[IJZ]][0-9][ABEHMNPRVWXY])))) [0-9][A-Z-[CIKMOV]]{2})
这工作良好的服务器端和测试时,在Regex英雄(http://regexhero.net/tester/),但在客户端正则表达式似乎不工作。
我查看了Jquery.validate.unobtrusive插件使用的代码:
$jQval.addMethod("regex", function (value, element, params) {
var match;
if (this.optional(element)) {
return true;
}
match = new RegExp(params).exec(value);
return (match && (match.index === 0) && (match[0].length === value.length));
});
和这里复制了相同的情况:http://jsfiddle.net/cEGsj/(我稍后添加了gi参数)。
谁能告诉我为什么这个正则表达式在JS中失败?我最初认为这与大小写有关,但添加忽略大小写选项似乎并没有改变任何东西。
也不似乎在这里工作:http://regexpal.com/所以一定有一些语法问题..
更新:我已经设法通过删除嵌套的字符集得到一些令人满意的工作。示例如下:http://jsfiddle.net/Asyqh/1/
我已经设法通过删除Javascript似乎不喜欢的嵌套字符集来获得令人满意的工作。示例如下:http://jsfiddle.net/Asyqh/1/
var regex = "(GIR 0AA)|((([A-Z][0-9][0-9]?)|(([A-Z][A-Z][0-9][0-9]?)|(([A-Z][0-9][A-HJKSTUW])|([A-Z][A-Z][0-9][ABEHMNPRVWXY])))) [0-9][A-Z]{2})";
相关文章:
- JS可以在Chrome中工作,但不能在Firefox中工作
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- Rails Production-可以工作,但不能编辑/删除/创建记录
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- 两个独立工作的javascript函数,但不能一起工作
- 漂亮的照片在Dreamweaver上完美运行;但不能在任何浏览器上在线工作
- 如何在HTML / CSS中填充垂直和滚动中间窗格(Chrome可以工作,但不能Firefox)
- RGB 到 HEX JavaScript 函数在 Chrome 中工作,但不能在 Firefox 或 Safari 中工
- 节点:zlib.gunzip 可以工作,但不能 zlib.inflate
- webview日期选择器可以在android模拟器中工作,但不能在设备上工作
- jQuery addClass/removeClass在调试期间工作,但不能正常执行
- CSS和Javascript可以在内部服务器上工作,但不能在外部工作
- 我的regex可以在regex101.com沙箱中工作,但不能在实际的javascript中工作
- 为什么jQuery可以在jSfiddle中工作,但不能在站点中工作
- Sencha Touch、Apigee JS SDK和Phonegap可以在浏览器中工作,但不能在IOS中工作
- Fancybox图像点击可以独立工作,但不能与我的其他代码一起工作
- . getelementbyid工作但不能.getelementbyid ().value