gpt4 book ai didi

IE 中的 JavaScript RegExp 兼容性

转载 作者:搜寻专家 更新时间:2023-11-01 04:11:57 27 4
gpt4 key购买 nike

^(?=[\w\-%&?#=]+\d)(?=[\w\-%&?#=]+[a-zA-Z])[\w\-%&?#=]{8,12}$

旨在匹配基于 JavaScript 的新密码检查中的以下条件,

  • 必须至少包含 8 到 20 个字符,必须包含一个字母和数字
  • 只能包含以下特殊字符之一:%,&, _, ?, #, =, -
  • 不能有空格

使用上述正则表达式,goog123# 在 FF3.5 中匹配。然而,这在 IE6 中失败了。任何人都知道这里出了什么问题?这是兼容性问题吗?

用于测试匹配的JavaScript

function fnIsPassword(strInput)
{
alert("strInput : " + strInput);
var regExp =/^(?=.{0,19}\d)(?=.{0,19}[a-zA-Z])[\w%&?#=-]{8,20}$/;
if(strInput.length > 0){
return (regExp.test(strInput));
}
return false;
}
alert(fnIsPassword("1231231")); //false
alert(fnIsPassword("sdfa4gggggg")); //FF: true, false in IE
alert(fnIsPassword("goog1234#")); //FF: true , false in IE

最佳答案

正则表达式有很多问题。试试这个:

^(?=.{,19}\d)(?=.{,19}[a-zA-Z])[\w%&?#=-]{8,20}$

即:

^                    # start-of-string(?=.{,19}\d)         # look-ahead: a digit within 20 chars(?=.{,19}[a-zA-Z])   # look-ahead: a letter within 20 chars[\w%&?#=-]{8,20}     # 8 to 20 chars of your allowed range$                    # end-of-string

关于IE 中的 JavaScript RegExp 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1901105/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com