Javascript 正则表达式 IE8 问题

标签 javascript regex internet-explorer-8

我有一个 div 定义如下:

<div id="bookmark_error" class="text-error">Character '' is not allowed in bookmark name.</div>

默认情况下它是隐藏的,定义如下:

$("#bookmark_error").hide();

在页面上保存书签时不允许使用某些字符,例如<和>

这里是在保存书签时执行的验证检查:

...
var bookmark_name = $("#bookmarks-form").find('input[type=text]').val();
var skipChars = ["<", ">", "&lt;", "&gt;", "&lt", "&gt", "&#60;", "&#62;", "&#60", "&#62"];
                for (var i=0; i < skipChars.length; i++){
                    var skipChar = skipChars[i];
                    while(bookmark_name.indexOf(skipChar) != -1){
                        $("#bookmark_error").html($("#bookmark_error").html().replace(/'[^]*'/g, "'"+skipChar+"'"));
                        $("#bookmark_error").show();
                        return;
                    }
                }
...

但它在 IE8 浏览器中无法按预期工作。 我在 javascript 正则表达式中做错了什么吗?

这里是一些示例值-输入值:

值:书签名称中不允许使用字符“”。

输入:<

值:书签名称中不允许使用字符“<”。

输入:>

输出:书签名称中不允许使用字符“>”。

最佳答案

您需要在正则表达式中添加 \d 才能在 ie8 上运行

引用来源:RegEx not working in IE8

所以你的代码将如下所示

$("#bookmark_error").html($("#bookmark_error").html().replace(/'[^\d]*'/g, "'"+skipChar+"'"));

关于Javascript 正则表达式 IE8 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22221191/

相关文章:

c# - 无法使用 C# 和摘要式身份验证连接到 TLS Web 服务,Firefox 在 IE8 失败的地方成功

javascript - Node.js 读取并执行 Ruby 文件?

javascript - 将额外参数传递给事件处理程序

javascript - 如何从 Jquery UI 日期选择器中禁用特定日期

javascript - 仅当站点位于本地主机时、仅当启用 JavaScript 时、仅在 IE8 模式下,IE8 才会在重新加载时崩溃

javascript - AngularJS 在 IE8 中未定义

javascript - Chromium 内部 postMessage 事件

Javascript 正则表达式仅匹配整个 url 作为输入

不以 "/*"开头的字符串的正则表达式

python - 解析电子邮件中的 "Sent"行