正则表达式
一、基础知识
- 语法:直接量的语法: /pattern/attributes(/正则/正则属性)
- RegExp 对象的语法: new RegExp(pattern, attributes);
- pattern里面为一个字符串,代表的就是正则
- attributes为可选字符串
- g:指定全局变量
- i:区分大小写的匹配
- m:多行匹配
- 元字符
- . :查找单个字符,除了换行和行结束符。
- \w:查找单词字符。
- \d:查找数字。
- \s :查找空白字符(空格)。
- \b:匹配单词边界
- \n:查找换行符
- \u:匹配汉字
- n$:匹配任何结尾为 n 的字符串。
- ^n:匹配任何开头为 n 的字符串。
- 方括号
- [abc] :查找方括号之间的任何字符。
- [^abc]:查找任何不在方括号之间的字符。
- [0-9]:查找任何从 0 ~ 9 的数字。
- [a-z]:查找任何从小写 a ~小写 z 的字符。
- [A-z]:查找任何从大写 A ~小写 z 的字符。
- 量词
- n+ :匹配任何包含至少一个 n 的字符串。
- n* :匹配任何包含零个或多个 n 的字符串。
- n? :匹配任何包含零个或一个 n 的字符串。
- n{X} :匹配包含 X 个 n 的序列的字符串。
- n{X,Y} :匹配包含 X 到 Y 之间某个数n的个 n 的序列的字符串。
- 正则方法:
- search:检索与正则表达式相匹配的值。
- match:找到一个或多个正则表达式的匹配。基本需要配合g
- replace:替换与正则表达式匹配的子串。
- test:匹配字符串之间是否存在与正则表达式相匹配的结果,有则返回true,无返回false。
二、使用方法:
- replace
- str=obj.replace(正则, "替换后的内容");
- str=obj.replace(正则, function ( ){ });
- match
- arr=obj.match(正则);
- search
- str=obj.search(正则);
- test
- 正则.test( obj );
- 注意:这个正则位置与上面的都不一样
三、符号
- \:能使字符变为有意义或无意义
- |:或
四、小括号
- 在match中的小括号:会形成只有2个元素的数组
- 第 1 个为原来查找的对象
- 第 2 个是最后查找到的元素
五、几种常用的正则匹配
IP地址的正则:re=/^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.\d|\.[1-9]\d|\.1\d{2}|\.2[0-4]\d|\.25[0-5]){3}$|^0\.0\.0\.0$/;
邮箱正则: re=/^[0-9a-z]{9,13}@[0-9a-z]{2,8}(\.[a-z]{2,4}){1,4}$/;
呢称正则:re=/[\u4e00-\u9fa5]/g;
座机正则:re=/^\(0\d{2,3}\)-\d{7,8}$|^0\d{2,3}-\d{7,8}$|^\d{7,8}$/;