zoukankan      html  css  js  c++  java
  • javascript正则表达式的使用

    粗略的可以参考https://www.runoob.com/jsref/jsref-obj-regexp.html

    什么是正则表达式?

    正则表达式是由一个字符序列形成的搜索模式。

    当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。

    正则表达式可以是一个简单的字符,或一个更复杂的模式。

    正则表达式可用于所有文本搜索和文本替换的操作。

    一些常见的正则表达式https://blog.csdn.net/lm1022/article/details/79050083

    项目中遇到一种情景,在用户登录的时候使用js的正则表达式判断输入是否为[字母][数字][下划线]的组合,且仅包含此三种符号。使用表达式和函数如下:

    function isValid(str) 
    { 
      return /(?=.*[A-Za-z])(?=.*[d])(?=.*_)(^[0-9a-zA-Z_]{1,}$)/.test(str); 
    }

     讲解一下:

    1. 第一个括号内是查找匹配出后面跟着某个字母的字符串,这说明了整个字符串中含有字母。
    2. 再通过类似的方法查找匹配出来的字符串中是否含有数字、下划线_。
    3. 到第四个括号时,已经说明整个字符串中同时含有字母、数字、下划线_。
    4. 最后一个括号里,针对匹配出来的字符串,查找其开头和结尾是[字母、数字、下划线_]的字符串。其中(^n+$)是常见的一种正则表达式,用于确定字符串由n组成,n可以是一个集合,(^n+$)相当于(^n{1,}$)。
    ?=n 匹配任何其后紧接指定字符串 n 的字符串。
    . 查找单个字符,除了换行和行结束符。
    [0-9] 查找任何从 0 至 9 的数字。
    [a-z] 查找任何从小写 a 到小写 z 的字符。
    [A-Z] 查找任何从大写 A 到大写 Z 的字符。
    [A-z] 查找任何从大写 A 到小写 z 的字符。
    d 查找数字。
    n*

    匹配任何包含零个或多个 n 的字符串。

    例如,/bo*/ 匹配 "A ghost booooed" 中的 "boooo","A bird warbled" 中的 "b",但是不匹配 "A goat grunted"。

    n{X,}

    X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。

    例如,/a{2,}/ 不匹配 "candy" 中的 "a",但是匹配 "caandy" 和 "caaaaaaandy." 中所有的 "a"。

    ^n 匹配任何开头为 n 的字符串。
    n$ 匹配任何结尾为 n 的字符串。



    推荐一下
    正则表达式生成网站http://tools.jb51.net/regex/create_reg,可以根据条件自动生成正则表达式

    再强烈推荐一个正则表达式的debug网站https://regex101.com

    可以在REGULAR EXPRESSION中输入正则表达式,下面的TEST STRING中输入测试字符串,右边会对于正则表达式的含义进行解释。

    需要注意此部分的输入会被整体看做一个字符串进行测试,并不是每一行测试一次。

    好在可以测试实时输入,右边会实时显示测试是否通过。

    这个网站还有一个特别好的地方,如果输入的字符串匹配失败,在你输入的正则表达式右上角有个debug按钮(小甲虫图标),点击后可以进入debug界面https://regex101.com/debugger

    在这里可以分步查看匹配流程,默认是查看50步,可以自行修改步数。通过匹配流程可以更好地理解正则表达式

  • 相关阅读:
    设计模式之工厂方法3
    Orchard CMS中如何打包不带源码的模块
    Dump Checking
    认识WinDbg
    Bootstrap3.0学习第九轮(CSS补充)
    SVN版本冲突解决详解
    windbg Symbol file path
    SVN下错误集锦
    MvcMovieStore mvc5.0,EF6.01
    SQL Server中的窗口函数
  • 原文地址:https://www.cnblogs.com/smileglaze/p/13891187.html
Copyright © 2011-2022 走看看