正则表达式

简介: 正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。一、定义有两种方式定义正则表达式; 1、用两个斜杠把正则表示式的内容包起来然后赋值给变量: var re=/a/;//表示包含a的字符 2、new 一个RegExp对象,把正则表达式用引号包起来作为参数传给RegExp对象; var re=new RegExp('a');二、匹配正则表达式通过test方法匹配字符串是否符合规则,如果匹配成功返回真,如果失败返回假。

正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

一、定义

有两种方式定义正则表达式;
1、用两个斜杠把正则表示式的内容包起来然后赋值给变量:
var re=/a/;//表示包含a的字符
2、new 一个RegExp对象,把正则表达式用引号包起来作为参数传给RegExp对象;
var re=new RegExp('a');

二、匹配

正则表达式通过test方法匹配字符串是否符合规则,如果匹配成功返回真,如果失败返回假。写法:正则.test(字符串)。
正则表达式的转义字符:
\n 换行
\s :空格
\S : 非空格
\d: 数字
\D: 非数字
\w: 字符(字母,数字,下划线_)
\W: 非字符
\b: 独立的部分 (起始,结束,空格)
\B: 非独立的部分
^:如果写在[]代表排除的意思,写在外面表示匹配输入字符串的开始位置。
$:正则最后的位置,代表结束的位置。
大写字母表示小写字母相反的意思。
特殊符号的含义:数量{} 字符类[] 子项()。

三、方法

1、search: 正则匹配字符串,如果匹配成功,就返回匹配的位置,如果失败就返回-1;
search是字符串的方法,用法:字符串.search(正则)
注意:正则默认是区分大小写的,如果不想区分大小写的好话,在正则的最后加标识标识符 i即可,例:

var str='abcdef'
var re=/B/i
//var re=new RegExp('B','i')
alert(str.search(re))

2、match: 正则去匹配字符串,如果匹配成功,就返回成功的数组,如果不成功就返回null
match的写法 :字符串.march(正则);
正则默认:正则匹配成功就会结束,不会继续匹配,如果想全部去查找 就要加标识 g(全局匹配);
3、replace:正则去匹配字符串 匹配成功的会替换成新的字符串。
replace写法:字符串.replace(re,新的字符串)

var str='aaa'
var re=/a+/
str=str.replace(re,'b')
alert(str)

弹出b。
replace 第二个参数 可以是字符串,也可以是函数。例:

var aT=document.getElementsByTagName('textarea');
            var bnt=document.getElementById('input1');
            var re=/武警|机关体制|调整/g
            bnt.onclick=function(){
//              aT[1].value=aT[0].value.replace(re,"*")
                aT[1].value=aT[0].value.replace(re,function(str){//匹配成功的字符串会作为参数传给函数
                    // 函数的第一个参数:就是匹配成功的字符
                    var result=""
                    for (var i = 0; i < str.length; i++) {
                        result+='*'
                    }
                    return result;
                })
            }

4、匹配子项:用小括号()将正则表达式拆分成若干项,每个括号里的内容都叫匹配子项,正则的整体叫做母亲;然后把第一个括号里面的正则,叫做第一个子项(母亲的第一个孩子);第二个括号就是第二个子项;

var str='2017-10-7'
var re=/(\d+)(-)/g
//          var re=/-/
str=str.replace(re,function($0,$1,$2){
    //// 函数的第一个参数:就是匹配成功的整体字符(母亲)
    console.info($0);
     return $1+'.'
    //return $0.substring(0,$0.length-1)+'.'

})
alert(str)  // 2017.10.7

5、过滤标签实例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        替换前<br />
        <textarea></textarea><br />
        替换后<br />
        <textarea></textarea><br />
        <input type="button"  value="确定" id="input1"/>
    </body>
    <script>
        var aT=document.getElementsByTagName('textarea');
        var bnt=document.getElementById('input1');
//      var re=/<[\w\W]+>/g
        var re=/<[^>]+>/g
        bnt.onclick=function(){
            aT[1].value=aT[0].value.replace(re,"")
        }
    </script>
</html>

四、量词

量词:匹配不确定的位数。
特殊符号的含义:数量{} 字符类[] 子项()。
+:符合+前面的正则规则的字符至少出现一次。

var str='hda123dadfap54fad33ushdbf879';
var re=/\d+/g;
console.log(str.match(re));

上面中“\d”一次只会匹配出一个数字,如果把var re=/\d+/g;改成var re=/\d/g;那么结果就会输出所有数字,没个数字都是数组的一个变量。
“\d+”表示数字字符串,var re=/\d+/g;,上面代码的输出结果是把连续的数字做为数组变量输出来,每个数字字符串为一个数组成员。

一些表示数量的表示形式:
+和{1,}是一样的,表示至少出现1次;
? {0,1} 出现0次或者1次;
* {0,} 至少出现0次
{4,7} 最少出现4次,最多出现7次
{4} 正好出现4次

目录
相关文章
|
4月前
|
自然语言处理 JavaScript 前端开发
正则表达式完整指南(上)
正则表达式完整指南(上)
|
7月前
常用正则表达式
常用正则表达式
|
1月前
正则表达式
这是正则表达式的符号概览:^表示行首,$表示行尾,\A和\z分别代表字符串开始和结束。&quot;.&quot;匹配任何字符,\s是空白字符,\S是非空白字符,\d代表数字,\D是非数字,\w是单词字符,\W相反,\b表示单词边界。;选项i忽略大小写,m使&quot;.&quot;匹配换行,x忽略空格,o限制替换次数。
23 7
|
2月前
使用正则表达式
使用正则表达式。
19 1
|
11月前
|
人工智能 数据安全/隐私保护
一些常用的正则表达式
今天在写一些输入验证的时候用到了正则表达式,现在就回顾一下我们常用的正则表达式,对于正则表达式的写法很多种,看个人的习惯了,我的写法也许不是很好,但可以满足基本需求。
83 0
|
12月前
|
前端开发 数据安全/隐私保护 Windows
常用的20个正则表达式
常用的20个正则表达式
244 0
|
移动开发 JavaScript 前端开发
正则表达式总结
什么是正则表达式? 正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。
77 1
|
机器学习/深度学习 JavaScript
详解 正则表达式
详解 正则表达式
详解 正则表达式
|
移动开发
【小技巧】正则表达式
正则表达式小技巧 1 空行替换 ^\r\n
497 0
|
Perl 运维 Linux
漫谈正则表达式
一、概述 正则表达式(Regular Expression)通常被用来检索、替换那些符合某个模式(规则)的文本。
944 0