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

      正则表达式在每一种编程语言中都有,不只是JavaScript才有的,并且正则表达式也语言无关,是一个独立的内容,每一种语言只是提供不同的方法或者函数可以和正则表达式配合使用,完成字符串查找、替换、删除的操作。

    字符串操作

    查找子串:String.search()

      search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。

      还有一个注意的地方就是,search只搜索一次,即使符合条件的字符串有多个,那么在搜索到第一个满足条件之后,立马就会返回。

    var str = "hello world";
    console.log(str.search("w"));//6
    console.log(str.search("a"));//-1
    

     

    字符串截取:String.split()

    var str = "hello world";
    console.log(str.substring(2));//llo world
    console.log(str.substring(2,5));//llo
    

     

    获取某个位置的字符:String.charAt()

    var str = "hello world";
    console.log(str.charAt(0));//h
    console.log(str.charAt(8));//r
    

     

    字符串分割:String.substring

    var str = "hello world";
    console.log(str.split("w"));// ["hello ", "orld"]
    console.log(str.split(" "));// ["hello", "world"]
    

     

    字符串检索:String.match()

      match和search的区别在于,search返回的是符合条件的下标(索引);match返回的符合条件的内容。都默认只匹配一次。

      match通过和正则表达式的g修饰符配合使用可以返回所有满足条件的子串。

    var str = "hello 1024 world";
    console.log(str.search("l"))//2
    console.log(str.match("l"))//["l", index: 2, input: "hello 1024 world"]
    

     

    字符串替换:String.replace()

      replace可以将字符串中某个子串替换为指定的字符串。默认值替换一次。

    var str = "hello";
    console.log(str.replace("l","L")) //heLlo 
    

      

    正则表达式

    基本格式

    var patt=new RegExp(pattern,modifiers);
    var patt=/pattern/modifiers;
    

      建议使用第二种方法,符合其他语言的使用习惯。

    正则初体验:

    var str = "hello 1024 world";
    var patt =  /d/
    console.log(str.search(patt)) //6
    console.log(str.search(/s/)) //5
    console.log(str.search(/E/))  //-1
    console.log(str.search(/E/i)) //1

     

    搭配使用match

    var str = "hello 1024 world 512";
    console.log(str.match(/d/))//["1", index: 6, input: "hello 1024 world 512"]
    console.log(str.match(/d/g))// ["1", "0", "2", "4", "5", "1", "2"]
    console.log(str.match(/d+/g))// ["1024", "512"]
    

     

    搭配使用replace

    var str = "hello";
    console.log(str.replace(/l/,"L")) //heLlo 
    console.log(str.replace(/l/g,"L")) //heLLo
    

    使用test验证是否匹配

      需要注意的是,test是RegExp对象的方法,不是String对象的方法,所以不要使用str.test(patt)这种错误的方式。

      正确的格式式patt.test(str),如果匹配正则表达式就返回true,否则返回false。

    var patt = /d{5,}/
    var str = "123456"
    console.log(patt.test(str))	//true
    console.log(patt.test("123")) //false
  • 相关阅读:
    深入浅出单实例Singleton设计模式
    设计模式之监听器模式
    Android 驱动(二) IIC简单介绍
    用XCA(X Certificate and key management)可视化程序管理SSL 证书(3)--创建自己定义的凭证管理中心(Certificate Authority)
    编译android-4.3.1_r源代码并刷到自己的Galaxy Nexus I9250真机上
    C++中的单例模式
    MessageDigest简单介绍
    白话经典算法系列之中的一个 冒泡排序的三种实现
    KNN算法理解
    TCP/IP数据包结构具体解释
  • 原文地址:https://www.cnblogs.com/-beyond/p/8145207.html
Copyright © 2011-2022 走看看