首页 > 设计 > WEB开发 > 正文

JavaScript正则表达式

2019-11-02 18:19:47
字体:
来源:转载
供稿:网友

/n 换行符 /s 空格 /S 非空格 /d 数字 /D 非数字 /w 字符(包含字母,数字和下划线) /W 非字符

常用的正则表达式匹配: 匹配中文:[/u4e00-/u9fa5] 行首行尾空格:^/s*|/s*Email:/w+@[a−z0−9]+(.[a−z]+)1,3 网址:[a-zA-z]+://[^/s]* QQ号:[1-9][0-9]{4,9} 邮政编码:[1-9]/d{5} 身份证:[1-9]/d{14}|[1-9]/d{17}[1-9]/d{16}x

在正则表达式的使用中常用到: indexOf 查找

var str ="Hello world!"alert(str.indexOf("Hello")alert(str.indexOf("World")alert(str.indexOf("world")弹出结果就为0-16

substring 获取子字符串

var str ="hello world"alert(str.substring(3,6))弹出lo w

charAt 获取某个字符

var str ="hello world"alert(str.charAt(3))弹出l

split 分割字符串,获取数组

var str="How are you doing today?"document.write(str.split(" ") + "<br />")document.write(str.split("") + "<br />")document.write(str.split(" ",3))输出How,are,you,doing,today?H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?How,are,you

正则表达式的方法: 1.正则.test(字符串)返回布尔值,用作判断

var str = 'abcdef';var re = /b/; //里面是个整体,如果是bd则是假alert(re.test(str));

2.字符串.search(正则)返回匹配成功位置

var str ="abcdef";var re =/B/i //不区分大小写则加ialert(str.search(re))弹出1

3.str.match(正则)。匹配字符串,成功返回数组,失败返回null

str.match(//d+/g) //g是全剧匹配 +是至少出现一次

4.字符串.replace(正则,新的字符) 。正则匹配,如果成功就把匹配成功的字符替换成新的字符。

var str ="abcdef";var re =/a/;alert(str.replace(re,"b"));弹出bbcdef

正则表达式的范围 ^写在正则最前面表示起始必须为 $写在正则的最后表示结束必须为

正则表达式的例子

<title>无标题文档</title><style type="text/CSS">textarea{width:300px; height:500px;}</style></head><body><textarea id="text1"></textarea><input type="button" id="btn1" value="转换" class="box box1 box2"/><textarea id="text2"></textarea><script>var str = 'haj123sdk54hask33dkhalsd879';//在str中找出数字放在数组中function findNum(str){ var arr = [];var tmp = ''; for(var i=0;i<str.length;i++){ if( str.charAt(i)<='9' && str.charAt(i)>='0' ){ tmp += str.charAt(i);} else{if(tmp){ arr.push(tmp);tmp = ''; } } } if(tmp){ arr.push(tmp);tmp = ''; } return arr;}//用正则表达式找到数字放在数组里function findNum(str){ return str.match(//d+/g);}alert(findNum(str));//几种简单的创建数组和对象的方法var arr=[];var arr = new Array();var obj ={};var obj = new Object();var re = /a/;var re = new RegExp('a');//正则匹配失败返回布尔值为0var str = 'abcdef';var re = /abd/; //里面是个整体,如果是bd则是假alert(re.test(str));///D为非数字的正则匹配,结果为0var str = '37482t9348791'; var re = //D/;alert(!re.test(str));//不分大小写,匹配b返回b的位置var str = 'abcdef'; var re = /B/i;alert(str.search(re));var oText1 = document.getElementById('text1');var oText2 = document.getElementById('text2');var oBtn = document.getElementById('btn1');//剔除敏感词oBtn.onclick = function(){ var str = oText1.value; var re = /公安部|斧子|死亡|服毒身亡/g; str = str.replace(re,function(a){ var num = ''; for(var i=0;i<a.length;i++){ num+='*'; } return num; }); oText2.value = str;}alert(str);//把-变成.变成2013.6.7 //s0为3- 6- s1是3 6 s2是-var str = '2013-6-7';var re = /(/d)(-)+/g;str = str.replace(re,function($0,$1,$2){ //alert($0); return $1+'.';})alert(str);//正则表达式是的分组处理var str = 'abc';var re = /(a)(b)(c)/;alert(str.match(re));//[]里面是或者的关系返回的布尔值为1var str = 'abc';var re = /a[bde]c/;alert(re.test(str)); //^表示排除的意思 返回的布尔值为0var str = 'abc';var re = /a[^bde]c/;alert(re.test(str));//[a-z]表示从a到z中都可以。返回的布尔值1var str = 'abc';var re = /a[a-z]c/;alert(re.test(str)); //<h3>标题</h3>aaaaa//替换成标题aaaaaoBtn.onclick = function(){ var str = oText1.value; var re = /<(/w|//)[^<]+>/g; str = str.replace(re,''); alert(str);}//匹配开头为数字或者结尾是数字的内容替换成空。oBtn.onclick = function(){ var str = oText1.value; var re = /^/s+|/s+$/g; str = str.replace(re,''); alert(str);}//匹配独立部分var str='onetwo';var re =/two/b/;alert(re.test(str));var re = //w/w/;var re = /(/w)/1/;</script></body></html>

这里面 /b /<(/w|//)[^<]+>/g的用法也不是很清楚希


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表