我有一个 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 = ["<", ">", "<", ">", "<", ">", "<", ">", "<", ">"];
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 上运行
所以你的代码将如下所示
$("#bookmark_error").html($("#bookmark_error").html().replace(/'[^\d]*'/g, "'"+skipChar+"'"));
关于Javascript 正则表达式 IE8 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22221191/