JavaScript正则表达式

作者: 微语博客 | 来源:发表于2021-07-17 23:59 被阅读0次

    正则表达式

    正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。正则表达式可以是一个简单的字符,或一个更复杂的模式。正则表达式可用于所有文本搜索和文本替换的操作。

    正则语法

    /正则表达式主体/修饰符(可选)
    

    示例说明:/hello/i 是一个正则表达式。hello 是一个正则表达式主体 (用于检索)。i 是一个修饰符 (搜索不区分大小写)。

    var reg = /hello/i;
    

    怎么使用:上面创建的字符串表达式可以用来检索字符串,比如检索下面字符串出现字符串的位置。

    var reg = /hello/i;
    var string = "Morning hello everyone";
    console.log(string.search(reg));//8  表示出现此表达式的位置是8,从0开始。
    
    var string = "Morning Hello everyone";//在不区分大小写模式时效果一样
    console.log(string.search(reg));//8
    

    除了查找,字符串替换也是很常见的操作,查找 search() 和替换 replace() 是字符串的两个成员方法。

    var reg = /everyone/i;
    var rep = "everybody";
    var string = "Morning hello everyone";
    console.log(string.replace(reg,rep));//Morning hello everybody
    

    字符串的检索和替换使用子字符串也能实现,但是使用正则表达式可以让实现功能更强,比如不区分大小写。

    正则表达式修饰符

    下表列出了正则表达式常用的修饰符:

    修饰 含义 描述
    i ignore - 不区分大小写 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。
    g global - 全局匹配 查找所有的匹配项。
    m multi line - 多行匹配 使边界字符 ^$ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。
    s 特殊字符圆点 . 中包含换行符\n 默认情况下的圆点 . 是 匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n

    全局匹配

    var reg = /hello/g;//全局
    var string = "Morning hello everyone hello";
    console.log(string.match(reg));//["hello","hello"] 返回的是字符串数组 表示检索到了多次
    
    var reg2 = /hello/;//非全局
    console.log(string.match(reg2));//["hello",8] 只返回第一个匹配字符串和它的索引
    

    多行匹配:^表示匹配开头,下面的\n表示换行符

    var reg = /^hello/g;//g表示匹配一行
    var string = "hello \n everyone \nhello";
    console.log(string.match(reg));//["hello"]
    
    var reg2 = /^hello/gm;//gm表示匹配多行
    console.log(string.match(reg2));//["hello","hello"]
    

    圆点.匹配:默认情况下圆点可以匹配任何字符,但是换行符\n除外,加上s符号后圆点可以匹配换行符\n

    var reg = /hello./;//默认匹配
    var string = "hello\n everyone";
    console.log(string.match(reg));//null 圆点没有匹配到\n
    
    var reg = /hello./s;//匹配换行符
    console.log(string.match(reg));//["hello\n"] 匹配换行符
    

    正则表达式模式

    正则表达式最强大的地方是可以通过模式匹配,通过特定的正则表达式模式,我们可以很容易判断一个数字是不是电话号码,验证一个邮箱是否合法,以及验证url格式等。

    方括号用于查找某个范围内的字符:

    表达式 描述
    [abc] 查找方括号之间的任何字符。
    [0-9] 查找任何从 0 至 9 的数字。
    (x|y) 查找任何以|分隔的选项。

    元字符是拥有特殊含义的字符:

    元字符 描述
    \d 查找数字。
    \s 查找空白字符。
    \b 匹配单词边界。
    \uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

    量词:

    量词 描述
    n+ 匹配任何包含至少一个 n 的字符串。
    n* 匹配任何包含零个或多个 n 的字符串。
    n? 匹配任何包含零个或一个 n 的字符串。

    相关文章

      网友评论

        本文标题:JavaScript正则表达式

        本文链接:https://www.haomeiwen.com/subject/qvigpltx.html