zoukankan      html  css  js  c++  java
  • 正则表达式

    正则表达式

    正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

    基本写法

    方式一:var reg = new RegExp('规则');
    方式二:var reg = /规则/;

    常用类型

    /pattern/attribute
    

    参数attribute是一个可选字符串,常用属性有gi

    g	//全局匹配
    i	//区分大小写匹配
    

    举例

    var str = 'My name is Dctxf,He is a boy!';
    var reg = /dctxf/i;
    var reg2 =/is/g;
    str.match(reg);		//返回["Dctxf"]
    str.match(reg2);	//返回["is", "is"]
    

    常用方法

    text()

    验证字符串中是否存在某字符串,并返回一个boolean值。空格同样会被验证

    //代码示例
    
    var str = 'my name is dctxf';
    var reg = /dctxf/;	//var reg = /md/;
    reg.test(str);	//验证str里面是否存在dctxf 返回true
    //如验证str里面是否存在yn 返回false
    

    exec()

    检索字符串中指定的值,并返回找到的值。若没有找到返回null

    var str = 'my name is dctxf';
    var reg = /dctxf/;
    reg.exec(str); //返回dctxf
    

    常用字符串正则方法

    match()

    匹配字符串中符合正则的字符串,并返回找到的字符

    var str = 'My name is dctxf';
    var reg = /dctxf/;
    str.match(reg);		//返回["dctxf"]
    

    搜索字符串中符合正则的字符串,并返回字符串位置

    var str = 'My name is dctxf';
    var reg = /dctxf/;
    str.search(reg);		//返回11
    

    replace()

    搜索字符串中符合正则的字符串,并替换找到的字符串

    var str = 'My name is dctxf';
    var reg = /dctxf/;
    str.replace(reg,'xiaofeng');		//返回"My name is xiaofeng"
    

    split()

    搜索字符串中符合正则的字符串并按照此规则进行分割,然后返回分割后字符串组成的数组

    var str = 'My name is dctxf';
    var reg = /s/;		// s=' ' 意思是空格
    str.split(reg);		//返回["My", "name", "is", "dctxf"]
    

    常用正则

    [0-9],[a-z]...

    从*到*

    var str = 'My name is dctxf';
    var reg = /[a-d]/g;		//[a-d]的字符
    str.match(reg);		//返回["a", "d", "c"]
    

    衍生正则

    [0-9]		//包含0-9
    [a-z]		//包含a-z
    [^0-9]		//不包含0-9
    [^a-z]		//不包含a-z
    [abc]		//包含abc
    [^abc]		//不包含abc
    [abc|def|xyz]		//包含abc或包含def或包含xyz
    

    a.e查找单个字符串,除了换行和结束符

    var str = 'My name is dctxf, we are friend';
    var reg = /a.e/g;
    str.match(reg);		//返回["ame", "are"]
    

    转义字符

    s		//空白字符(空格,tab,换行,回车)
    S		//非空白字符
    w		//单词字符(字母,数字,下划线)
    W		//非单词字符
    d		//数字
    D		//非数字
    		//单词边界
    B		//非单词边界
    
    		//换行符
    
    <!--下面的n代表任意字符串,x,y代表数字-->
    n+		//包含至少一个n的字符串
    n*		//包含0或多个n的字符串
    n?		//包含0或一个n的字符串
    n{x}	//包含 x 个 n 的序列的字符串
    n{x,y}	//包含x或y个n的序列的字符串
    n{x,}	//包含至少x个n的序列的字符串
    n$		//任何结尾为 n 的字符串
    ^n		//任何开头为 n 的字符串
    

    常见正则

    汉字

    [u4e00-u9fa5]
    

    手机号

    1[0-9]{10}
    

    邮箱

    [w!#$%&'*+/=?^_`{|}~-]+(?:.[w!#$%&'*+/=?^_`{|}~-]+)*@(?:[w](?:[w-]*[w])?.)+[w](?:[w-]*[w])?
    

    身份证

    [1-9][0-9]{16}[0-9]|[1-9][0-9]{16}x$
    

    网址

    [http://,https://][^s]*
    
  • 相关阅读:
    AccessControlAllowOrigin 跨域设置多域名
    C#基于LibUsbDotNet实现USB通信(一)
    移动端设置行高等于高度的时候文本不居中???
    阿里云OSS设置跨域访问还是不行。
    没错,就是AccessControlAllowOrigin,跨域
    移动端 lineheight 文字不居中问题解决方案
    Chromium.org team 改进vs编译速度的一些建议
    isapi x86 在win7x64下的安装问题
    Entity Framwork one to one problem
    Google Talk使用技巧
  • 原文地址:https://www.cnblogs.com/dctxf/p/5082375.html
Copyright © 2011-2022 走看看