您的位置:首页 > 其它

正则表达式 RegExp()//

2016-08-08 14:47 169 查看
字符串处理:

split(‘-‘) ,分割字符串

charAt(0), 提取某个字符

substring(1,5), 获取字符串

search(“a”) 返回位子,否则-1

正则表达式:字符串匹配工具

str.match(/\d+/g);//所有匹配以数组的形式返回

风格:

//1.js风格
var re = new RegExp('a');
var str = "abcdef";
alert(str.search(re));// 0
//2.perl风格
var re = /a/;
//加i,忽略大小写 ;加g,找全部
var re = new RegExp('a','i');
var re = /a/i;


转义:

\d 数字 [0-9] ; \D=[^0-9]

. 任意字符

\w 英文、数字、下划线[a-z0-9_] ; \W= [^a-z0-9_]

\s 空白字符

var str='jdjfdsf 34 656 jjjj33';
var re = /\d/;
alert(str(match(re));//3
var re = /\d/g; //global找全部:3,4,6,5,6,3,3
var re = /\d\d/g;//34,65,33两位
var re = /\d\d\d/g;//656三位


量词

{n}:正好n次

{n,m}:最少n次,最多m次

{n,}:最少n次,最多不限

+ = {1,}

? = {0,1}

* {0,} 不建议使用

var re = /\d+/g;//34,656,33
[1-9]\d{7}//八位电话号码
[1-9]\d{4,10}//5-11位QQ号
(0\d{2,3}-)?[1-9]\d{7}(-\d{1,5});//固话号码


replace

var str = 'abc aaa erw';
alert(str.replace('a','0'));//"0bc aaa erw";只替换第一个
var re = /a/g;
alert(str.replace(re,'0');//"0bc 000 erw";全部a被替换
//敏感词过滤
var re = /北京|淘宝|百度/g;
str.replace(re,"***");


[]元字符,方括号

//1.[abc]或:
var str = "apc xpc ppc bpc spc tpc";
var re = /[apx]pc/g;
alert(str.match(re));//apc,xpc,ppc
//2.范围
var re = /[0-9]+/g;//同 var re = /\d+/g;
//3.排除
var re = /[^a-z]+/g;//除字母都要
[^a-z0-9]//除数字和英文以外


eg:过滤html标签

var re = /<.+>/g;//贪婪,匹配尽可能多的字符
var re = /<[^<>]+>/g;//除了<>的任意字符


eg: 邮箱校验

var re = /\w+ @ [a-z0-9]+ \. [a-z]/i;
re.test(oTex.value);
//贪婪:test()--字符串中一部分符合要求,true;
//eg: ---是blue@zhinengshe.com  true
优化:
var re = /^\w+@[a-z0-9]+\.[a-z]+$/i;
//eg: ---是blue@zhinengshe.com false


^ 行首(字符串开头),不出现在[]里面

$ 行尾
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则 RegExp match test