美文网首页技术初心简友广场程序园
正则表达式最常用的几种形式

正则表达式最常用的几种形式

作者: triplestudio | 来源:发表于2019-08-12 17:42 被阅读1次

正则表达式提供了一种字符串匹配模式的描述形式,通过简单的符号就能表达丰富的文本结构。如 [a-z]+ 就可以表示所有字母的组合。

以下是在实际项目中使用得最多的三种情形。

1 判断

如判断用户的输入是否符合要求。通常使用正则表达式的 test 方法,当传入的字符串符合正则表达式的模式要求时会返回 true。

如仅允许输入数字,可用以下方法检测:

function checkNum(inputStr){
    return /^\d+$/.test(inputStr);
}

其中正则表达式 ^\d+$ 中,第一个符号 ^ 表示字符串首,最后的 $ 表示字符串尾,加上这两个表示必须整串字符完全跟模式匹配才返回 true。而如果没有,则只要字符串中包含符合模式的串就会返回 true。

2 寻找

在文本中寻找指定形式的匹配串,如手机号、邮箱等。在 javascript 中,通常可以使用字符串对象的 match 方法。此时,正则表达式作为 match 方法的参数传入。

如,找出文本中所有的数字串:

function findNum(inputStr){
    return inputStr.match(/\d+/g);
}

// 调用示例
console.log( findNum("a123abb90,78a909").join() );

上边调用示例会输出匹配的数组数据:123,90,78,909
正则表达式 \d+ 表示数字串,而表达式对象 /\d+/ 外的 g 是一个选项,表示全局搜索,表明要找出所有的匹配项。如果没有这个 g,则只会返回第 1 个匹配结果。

此外,也可以使用正则表达式的 exec 方法,匹配第 1 个符合模式的字符串。如 /\d+/.exec("a123abb90,78a909") 得到 123

当然,如果文本中不包括匹配的内容则会返回 null。

3 替换

将文本中符合指定模式的匹配串替换成别的字符串,使用字符串的 replace 方法。如,将上边示例字符串中的非数字部分替换成逗号,这种情形在对用户输入时去除干扰性输入时经常用到。

function replaceNotNum(inputStr){
    return inputStr.replace(/[^\d]+/g, ",");
}

// 调用示例
console.log( replaceNotNum("a123abb90,78a909") );

上边调用示例会输出结果:,123,90,78,909
同样,正则表达式后边的 g 表示全局,如果没有它,则只会替换掉第 1 个匹配的字符串。

有一种情形是替换时经常碰到的:对匹配的内容不是替换成另一个相同的字符串,而是在匹配的基础上进行调整。如将上边示例字符串中的连续数字统一加上中括号。此时可以:

function decorateNum(inputStr){
    return inputStr.replace(/(\d+)/g, '[$1]');
}

// 调用示例
console.log( decorateNum('a123abb90,78a909') );

上边调用示例会输出结果:a[123]abb[90],[78]a[909]
正则表达式 ([\d]+) 加了括号,而替换的字符串中出现了一个$1,这是关键。因为替换的内容跟匹配的内容需要动态关联,需要一种关联机制。这种机制就是,括号中的内容作为子匹配会进行存储,以供后续使用,一共支持 $1 ~ $9共 9 个存储值,这里再举一个例子。

function exchangeNum(inputStr){
    return inputStr.replace(/(\d)(\d)/g, '$2$1');
}

猜猜以下调用会输出什么结果:

console.log( exchangeNum('12 34 56 78') );

4 语法文档

至于想要匹配的内容如何书写正则表达式,这与需求相关,可以在面临实际问题时去翻阅语法说明或其它方式寻求答案。

参考文档:https://www.runoob.com/regexp/regexp-tutorial.html

相关文章

  • 正则表达式最常用的几种形式

    正则表达式提供了一种字符串匹配模式的描述形式,通过简单的符号就能表达丰富的文本结构。如 [a-z]+ 就可以表示所...

  • web开发常用的几种居中形式

    水平居中: 要居中的元素A有width属性 给元素A添加margin:0,auto; ps: 此外,marg...

  • 正则表达式与方法

    正则表达式---常用符号 正则表达式--常用函数 正则表达式--常用技巧 代码: 正则表达式的应用举例 1、使用f...

  • Python常用模块

    Time 模块 时间模块常用的有如下几种。 元组形式显示时间: UTC时间: 将格式化的时间转换为元组形式的时间:...

  • 这几种形式最伤血管

    人与动脉同寿」,意思是说,当人体动脉不断硬化阻塞,最后脏器(心脑)梗塞、坏死之日,就是人的寿终正寝之时。 像人的骨...

  • 关于串口格式与报文格式

    《串口硬件分类》中已经说明了几种串口的类型,并在《串口通信协议》中说明了几种串口协议形式,这里就常用的串口协议进一...

  • Regular expression

    定义 来自维基百科正则表达式。在理论计算机科学和形式语言理论中,正则表达式是定义搜索模式的一串字符。这种模式通常用...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • 正则表达式

    什么是正则表达式?如何创建正则表达式正则表达式常用的方法字符串中的正则表达式常用的正则表达式假设用户需要在HTML...

  • 正则表达式

    用法。常用正则表达式。详细用法 //正则表达式:记录文本规则的代码 //常用的正则表达式的地方:登录,密码等格式的...

网友评论

    本文标题:正则表达式最常用的几种形式

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