正则表达式

正则写法

有两种写法

//js风格写法
// i ignore 忽略大小写
// g global 全局匹配找到所有符合条件
var re = new RegExp('a', "i")
//perl风格写法
var re1 = /a/

常用字符串操作

以下语法可以用字符串操作 也可以用正则表达式增加作用

  1. search
    获取字符出现的位置,存在返回字符串出现位置,否则返回-1

    var str = "abcde"
    var index = str.search("a")
    
  2. substring
    获取字符串的子串

    var str = "abcde"
    //开始位置和结束位置 左闭右开
    var subStr = str.substring(1, 2) //b
    //只传入开始位置 从开始位置一直到结束
    var subStr1 = str.substring(1)
  3. charAt()
    获取该位置的字符

    var str = "abcde"
    var char = str.charAt(3) //d
    
  4. split()
    将字符串按特定字符切分为数组

    var str = "ab-cd-e"
    var arr = str.split("-") //[ab, cd, e]
    
  5. match

    获取符合条件的结果

    var re = new RegExp("\\d+", "g")
    // var re = /\d+/g
    var str = "1AbBc33Cd3DeE2rRtT"
    str.match(re) //[1, 33, 3, 2]
  6. replace

    替换所有符合条件的字符

    var re = new RegExp("\\d+", "g")
    // var re = /\d+/g
    var str = "1AbBc33Cd3DeE2rRtT"
    str.replace(re, "dog") //dogAbBcdogCddogDeEdogrRtT
  7. test
    检测字符串中是否有符合规则的部分 返回boolean

正则写法

匹配

\d  数字 [0-9]
\D  除了数字[^0-9]

\w  英文、数字、下划线 [a-z0-9_]
\W  非英文、数字、下划线 [^a-z0-9_]

\s  空白字符
\S  非空白字符 

.   表示为任意字符

元字符

[]括起来

//表示范围
[0-9] 表示0-9中任意字符
//表示任意字符
[abc] 表示出现的a、b、c出现哪个都行
//用来排除
[^0-9] 表示出现非数字

量词

表示出现的个数
{}括起来

{n} 表示出现n次
{n,m} 表示最少n次 最多m次
{n,}    最少n次 最多不限
+  等效于 {1,} 最少1次 做多不限
? 等效于 {0,1} 最少0次 最多1次  可有可无
* 等效于 {0,}  表示可以没有 也可以有无数次

行首 行尾

^  当此字符不在元字符中时 表示行首
$   表示行尾