简体   繁体   English

Javascript Regex IE8问题

[英]Javascript Regex IE8 issue

I have a div as defined below: 我有如下定义的div:

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

By default it is hidden as defined below: 默认情况下,它是隐藏的,如下所示:

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

Some of characters are not allowed while saving bookmark on a page for eg < and > 在页面上保存书签(例如<和>)时,不允许使用某些字符。

Here a validation check that is performed at the time of bookmark save: 在此保存书签时执行的验证检查:

...
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;
                    }
                }
...

But its not working as expected in IE8 browser. 但是它无法在IE8浏览器中正常工作。 Am I doing something wrong in javascript regex? 我在javascript正则表达式中做错了吗?

Here is some sample value-input-value: 这是一些示例值-输入-值:

value : Character '' is not allowed in bookmark name. 值:书签名称中不允许使用字符“”。

input : < 输入:<

value : Character '<' is not allowed in bookmark name. value:书签名称中不允许使用字符“ <”。

input : > 输入:>

output : Character '>' is not allowed in bookmark name. 输出:书签名称中不允许使用字符“>”。

You need to add \\d in your regex for it to work on ie8 您需要在正则表达式中添加\\d才能在ie8上运行

Reference from : RegEx not working in IE8 引用自: RegEx在IE8中不起作用

So your code will look like this 所以你的代码看起来像这样

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

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

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