JavaScript正则表达式(元字符、字符集合、出现次数、或者运算符)

1. 用途

有三个主要用途:

  • 模式验证: 检测某个字符串是否符合规则
  • 匹配读取: 将目标字符串中满足规则的部分读取出来
  • 匹配替换: 将目标字符串中满足标准的部分替换为其他字符串

在线正则测试工具: http://tool.oschina.net/regex

2. 正则表达式创建

创建正则表达式对象

  • 对象形式:var reg = new RegExp(“正则表达式”)。当正则表达式中有"/"那么就使用这种
  • 直接量形式:var reg = /正则表达式/。一般使用这种声明方式

3. 正则表达式使用

  1. 简单使用
    test方法: 用来查看正则表达式与指定的字符串是否匹配
        var reg = /abc/;     //new RegExp("abc")
        var str = "abcdefg";
        var flag = reg.test(str);
        document.write(flag);    // true

exec方法: 在一个指定字符串中执行一个搜索。匹配成功返回一个数组,匹配失败返回null

    const reg = /abc/
    const str = "abcdefg"
    const arr = reg.exec(str)
    console.log(arr)    // ['abc', index: 0, input: 'abcdefg', groups: undefined]
  1. 全文匹配
        var reg = /o/gi;        // g表示匹配的模式,表示全文匹配;i表示忽略大小写匹配
        var str = "abcohijOkl";
        str = str.replace(reg, '_');
        document.write(str);    // abc_hij_kl
  1. 多行匹配
        var reg = /hello$/m;        // m表示多行匹配
        var str = "hello\nworld";
        var flag = reg.test(str);
        document.write(flag);    // true

4. 正则表达式的元字符

在正则表达式中被赋予特殊含义的字符,不能被直接当做普通字符使用。如果要匹配元字符本身,需要对元字符进行转义,转义的方式是在元字符前面加上“\”

代码:

  • . 匹配除换行字符以外的任意字符
  • \w匹配字母或数字或下划线,等价于[a-zA-Z0-9_]
  • \W匹配任何非单词字符。等价于[^A-Za-z0-9_]
  • \s匹配任意的空白符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]
  • \S匹配任何非空白字符。等价于[^\f\n\r\t\v]
  • \d匹配数字。等价于[0-9]
  • \D匹配一个非数字字符。等价于[^0-9]
  • \b匹配单词的开始和结束
    ^ 匹配字符串的开始,但在[]中使用表示取反
    $ 匹配字符串的结束

示例1:

        var reg = /\w/gm;
        var str = "a>b_c|d\nf?g";
        str = str.replace(reg, "A");
        document.write(str);
        // A>AAA|A
        // A?A

示例2:

        var reg = /\b/gm;        // \b表示匹配单词的开始和结束
        var str = "hello world";
        str = str.replace(reg, "A");
        document.write(str);    // AhelloA AworldA

示例3:

        var reg = /^a/im;
        var str = "ahelloworldb";
        str = str.replace(reg, "A");
        document.write(str);    // Ahelloworldb

5. 正则表达式字符集合

  • [字符列表]。例如[abc]的含义:目标字符串包含abc中的任何一个字符
  • [^字符列表] 例如[^abc]的含义:目标字符串包含abc以外的任何一个字符
  • [字符范围]。例如[A-Z]含义:所有大写英文字符组成的字符列表

6. 正则表达式出现次数

代码:

  • *: 出现零次或多次
  • +: 出现一次或多次
  • ?: 出现零次或一次
  • {n}: 出现n次
  • {n,}: 出现n次或多次
  • {n,m}: 出现n到m次

示例1:

        var reg = /[l]{2,4}/gi;
        var str = "ablllhellowllllllorldc";
        str = str.replace(reg, "_");
        document.write(str);    // ab_he_ow__orldc

7. 正则表达式或者|

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript正则表达式和Java正则表达式在语法上有一些差异,但是它们的基本概念和用法是相似的。下面是将JavaScript正则表达式转换为Java正则表达式的一些常见规则: 1. 语法差异: - JavaScript正则表达式使用斜杠(/)作为定界符,而Java正则表达式使用双引号(")作为定界符。 - JavaScript正则表达式中的特殊字符需要进行转义,而Java正则表达式中的特殊字符不需要转义。 2. 字符类: - JavaScript正则表达式中的字符类使用方括号([])表示,而Java正则表达式中使用方括号([])或者Unicode转义(\p{...})表示。 - JavaScript正则表达式中的字符类可以使用连字符(-)表示范围,而Java正则表达式中需要使用Unicode转义(\uXXXX)表示范围。 3. 量词: - JavaScript正则表达式中的量词使用花括号({})表示,而Java正则表达式中使用花括号({})或者问号(?)表示。 - JavaScript正则表达式中的贪婪量词默认是贪婪模式,而Java正则表达式中的贪婪量词需要在后面添加问号(?)来表示非贪婪模式。 4. 边界匹配: - JavaScript正则表达式中的边界匹配使用插入符号(^)和美元符号($)表示,而Java正则表达式中使用\A和\Z表示。 5. 其他差异: - JavaScript正则表达式中的捕获组使用圆括号(())表示,而Java正则表达式中使用圆括号(())或者方括号([])表示。 - JavaScript正则表达式中的反向引用使用反斜杠加数字(\1、\2等)表示,而Java正则表达式中使用美元符号加数字($1、$2等)表示。 以上是一些常见的JavaScript正则表达式转换为Java正则表达式的规则。具体转换时,还需要根据具体的正则表达式进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值