zoukankan      html  css  js  c++  java
  • 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}$/;
    这下不报错了,两个正则的区别在于,第二个没有[^],也许是这部分需要转译,但是我没有求证,大家伙有没有好的意见和建议呢。
  • 相关阅读:
    1.shell编程-变量的高级用法
    1.python简介
    1.numpy的用法
    1.MySQL(一)
    1.HTML
    1.Go-copy函数、sort排序、双向链表、list操作和双向循环链表
    1.Flask URL和视图
    1.Django自学课堂
    1.Django安装与运行
    ajax跨站请求伪造
  • 原文地址:https://www.cnblogs.com/zhilu/p/14637527.html
Copyright © 2011-2022 走看看