• IE8下 js 报错,字符集越界


    昨天测试项目兼容性的时候,遇到了js报错提示 ‘字符集越界’,查了度娘,各种说法都有,但是大致都是是正则有问题;

    集中在正则看了下;

    有人这样说:

    因为根据之前了解的,在正则中需要转移的字符有  ( [ { \ ^ $ | ) ? * + . ] }  这些,并没有考虑"-",但在正则的[]括号中,"-"表示一个字符范围,比如a-z,0-7之类的,此时如果不给"-"转义,则会认为匹配+至*或者/,而+-*这个字符集是不对的,同理本来应该写成a-z,如果写成了z-a,也是同样的问题,所以在此处把"-"也进行转义即可。

    我的正则是:

    var re =/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/;
    在尝试了将所有的需要转译的字符进行转译后,发现正则没有办法用;
    最后重新写了正则:
    var re =/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,16}$/;
    这下不报错了,两个正则的区别在于,第二个没有[^],也许是这部分需要转译,但是我没有求证,大家伙有没有好的意见和建议呢。
  • 相关阅读:
    网络技术
    AWS责任共担模型
    AWS 创建新用户(IAM用户)
    AWS系列-申请Redis
    AWS系列-申请MySQL
    MDX之Case When用法
    SSAS中雪花模型
    SSAS中处理时经常出现的几种错误
    C#连接Oracle中文乱码问题解决方法
    BI中PowerDesigner建模
  • 原文地址:https://www.cnblogs.com/zhilu/p/14637527.html
Copyright © 2020-2023  润新知