zoukankan      html  css  js  c++  java
  • 正则的一些细节和拖拽时遇到的问题及解决方法

    1. 正则:检索字符串的一条规则。

    2. 正则就是由元字符和修饰符构成。

    3. 写在//里面的都叫元字符,元字符分两种 一种是有特殊意义,一种没有特殊意义,没有特殊意义的就是字符本身。

    特殊意思的元字符

    1. 转义字符  转译后面紧跟的字符的意义 d  .
    2. . 代表除了 以外的任何单个字符
    3. d,D,w,W,s,S,b,B
    4. ^ 以什么开头 kangchuo
    5. $ 以什么结束   $ 就是$本身
    6. |代表或的意思

    带有量词意思的元字符

    1. ? 代表0到1个
    2. * 代表0到多个
    3. +代表1到多个

    4,{}系列

    []系列元字符

    [xyz]代表x或y或z中的任意一个

    [0-9]代表0-9之间的任意一个

    [a-z]代表小写a到小写z

    [A-Z]代表大写A到大写Z

    [A-z]

    ()分组系列

    (x|y)

    正则的细节

    1. 正则定义的区别

    Var reg=/hello/g

    Var reg=new RegExp(“hello”,”g”)

    var name="hello"

    var reg=/name/

    var reg=new RegExp("hel"+name+"lo","g")

    console.log(reg.test(st)

    前者里面不能引用变量,后者可以。

    2.reg=/^d$/

     var reg/^d$/

    var st="123"

    console.log(reg.test(st)

    因为^和$符不占用位置,也就说明开头和结尾之间夹了一个数字,表达一个纯数字

    3././和/./的区别

     

    4.[.],[+]的意思

    .和+在正则里是特殊的元字符,.是任意字符+是量词代表多个。

    在[]里面的.和+就是这个字符本身,没有意义。

    5.|代表或

    [2|3] 代表2或3

    [12|34] 代表1或2|3或4,或者12,34 往往这种情况需要分组()

    [(12|34)]

    [xyz]

    6.-的问题

    /-/ 就是-本身。没有意义,如果写在[0-9]代表0到9之间的任意一个数字。

    [12-65]代表18到65之间的数字???

    表达的是1或者2-6的数字或者5

    案例1写一个12到65周岁的正则

    var reg=/^(1[2-9])|([2-5][0-9])|(6[0-5])$/

         var st="66"

    console.log(reg.test(st))

    案例2 写一个正常的数字的正则

    +12 -12  23 23.256 6 0.36

    var reg=/^[+-]?([0-9]|[1-9]d+)(.d+)?$/

    var st="60"

    console.log(reg.test(st))

    问题

    在拖拽元素的时候,如果元素的内部加了文字或者图片,拖拽效果会失灵?

    浏览器会给文字和图片一个默认行为,当文字和图片被选中的时候,会有一个拖拽的效果,即使我们没有人为给他添加。所以当我们点击这个元素拖拽时,有可能选中文字或图片触发浏览器天生给的那个行为,从而导致我们写的那个拖拽效果失灵。

    怎么解决

    if(div.setCapture){
    div.setCapture()
    }else{
    ev.preventDefault?ev.preventDefault():ev.returnValue=false;
    }

    setCapture() 全局捕获的方法  他是ie低版本所特有的。给一个元素添加了这个方法之后,无论我们在页面的那个地方触发了相同的事件,都会触发这个元素。

    新增获取元素的方法

    Document.querySelector()获取的是单个元素

    Document.querySelectorAll() 获取的是元素组

    括号里可以写  div  .div   #div

  • 相关阅读:
    C++面试题
    kalman滤波原理
    开blog
    Linux图片批处理
    Debian使用相关
    Ubuntu grub引导修复
    Debian系统vim中文显示乱码问题
    Debian配置Apache2支持mod-python和cgi模块
    linux下解压被分割的zip文件
    Ubuntu 16.04 启动错误 "a start job is running for hold until boot process finishes up"
  • 原文地址:https://www.cnblogs.com/mo123/p/10154278.html
Copyright © 2011-2022 走看看