当前位置:

RegExp正则表达式

访客 2024-01-05 1247 0

什么是正则表达式?

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。


正则表达式常用的验证方法

1、test()

返回一个布尔值,方法用于匹配字符串,匹配成功返回true,失败返回false。

  • varreg=/abc/;
  • varstr='abcdefg';
  • str=reg.test(str);
  • console.log(str);
  • 2、exec()

    返回匹配结果,发现匹配,就返回一个以每个匹配成功的字符串组成的类数组集合,否则返回null。

    此方法属性:

    index:表示匹配项在字符串的位置

    input:表示原字符串

  • varreg=/abc/;
  • varstr='abcdefg';
  • str=reg.exec(str);
  • console.log(str);

  • 正则表达式的匹配规则

    1、字面量字符

    在正则表达式中,某个字符只能表示它字面的含义,比如/a/匹配a,包括数字、大小写和一部分符号

    2、元字符

    出字面量字符以外,还有一部分字符有特殊含义,不代表字面意思,叫“元字符”。如果要匹配他们本身,需要在它们前面加上反斜杠进行转义,比如匹配,就要写成\

    正则中需要用斜杠转义的字符:
    ^、.、[、]、(、)、$、|、*、、?、{、}、\\

    特殊字符:

    • 点字符:匹配除了回车\r、换行\n、行分隔符\u2028、段分隔符\u2029
    • 位置字符:^表示字符串的开始位置,$表示字符串的结束位置
    • 竖线符号:在正则表达式中表示“或关系”即a|b表示匹配a或b

    3、重复类

    模式的精确匹配次数,用大括号{n}表示恰好重复n次,{n,}表示至少重复n次,{n,m}表示重复不少于n次,不多于m次

    4、量词符

    • ?问号表示某个模式出现,等同于{0,1}最多1次
    • *星号表示某个模式出现0次或多次,等同于{0,}无影响
    • 加号表示某个模式出现1次或多次,等同于{1,}至少1次

    5、字符类

    表示有一系列字符可供选择,只要匹配其中一个就可以,所有可供选择的字符都放在方括号内,如:[abc],表示a、b、c之中任选一个匹配。

    ^脱字符:如果方括号内的第一个字符是[^],则表示除了字符类中的字符,其他字符都可以匹配,如:[^abc]表示除了a、b、c之外,都可以匹配。

    -连字符:对于连续序列的字符,连字符用来提供简写形式,表示字符的连续范围,如:[abc]可写成[a-c]、[012345679]可写成[0-9]、[A-Z]表示26个大写字母。
    中文:[\u4e00-\u9fa5]

    6、修饰符(模式修正符)

    修饰符表示模式的附加规则,放在正则模式的最尾部,修饰符可以单个使用,也可以多个一起使用

    • g默认情况下,第一次匹配成功后,正则对象就向下匹配,g修饰符表示全局匹配
    • i默认情况下,正则对象区分字母的大小写,加上i修饰符以后表示忽略大小写
    • m表示多行模式,会修改^和$的行为,默认情况下,^和$匹配字符串的开始处和结尾处,加上m修饰符后,^和$会识别换行符\n

    7、预定义模式

    指某些常见的简写方式(注意大小写):

    • \d匹配0-9之间的任一数字,相当于[0-9]
    • \D匹配所有0-9以外的字符,相当于^[0-9]
    • \w匹配任意的字母、数字和下划线,相当于[A-Za-z0-9]
    • \W除所有字母、数字和下划线以外的字符,相当于[^A-za-z0-9]
    • \s匹配空格、包括制表符、空格符、断行符等
    • \S匹配非空格的字符
    • \b匹配单词的后边界
    • \B匹配非单词边界

    特殊字符:

    • [\b]匹配退格键
    • \n匹配换行符
    • \r匹配回车键
    • \f匹配换页符
    • \t查找制表符tab

    8、组匹配

    正则表达式的括号表示分组匹配,括号中的模式可以用来匹配分组的内容。

    如:

  • varstr='abcdef';
  • varreg=/[(abc),(def)]/;
  • str.match(reg);
  • console.log(str);
  • 输出结果:


    正则表达式的匹配方法

    match()接受一个参数,正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功就返回nullsearch()参数与match相同,返回字符串中第一个匹配项的索引,没有匹配项返回-1replace()用于替换,接受两个参数,第一个是匹配项,第二个可以是字符串或是一个函数

    发表评论

    • 评论列表
    还没有人评论,快来抢沙发吧~