RegExp对象
- JS风格——new RegExp(“a”, “i”)
- perl风格——/a/i
<script>
var re=new RegExp('b', 'i');
var str='abcdef';
alert(str.search(re));
</script>
<script>
var re=/a/i;
var str='abcdef';
alert(str.search(re));
</script>
字符串操作
- search 查找
- substring 获取子字符串
- charAt 获取某个字符
- split 分割字符串,获得数组
<script>
var str='abcdef';
alert(str.search('u')); //位置, -1
alert(str.search('b')); //1
alert(str.substring(2, 5)); //不包括结束位置 cde
alert(str.substring(1)); //bcdef
alert(str.charAt(0));//a
alert(str.charAt(2));//c
//-------------------------
var str='12-56-aaa-89';
var arr=str.split('-');
alert(arr) //12,56,aaa,89
</script>
search 字符串搜索
- 返回出现的位置
- 忽略大小写:i——ignore
- 判断浏览器类型
match 获取匹配的项目
- 量词:+
- 量词变化:\d、\d\d和\d+
- 全局匹配:g——global
- 例子:找出所有数字
<script>
var str='asdf 34 656 cvs33';
var re1=/\d/g;
var re2=/\d+/g;
alert(str.match(re1));//3,4,6,5,6,3,3
alert(str.match(re2));//34,656,33
</script>
replace 替换所有匹配
- 返回替换后的字符串
- 例子:敏感词过滤
<script>
window.onload=function ()
{
var oTxt1=document.getElementById('txt1');
var oTxt2=document.getElementById('txt2');
var oBtn=document.getElementById('btn1');
oBtn.onclick=function ()
{
//将北京|百度|淘宝字眼替换成'***'
var re=/北京|百度|淘宝/g;
oTxt2.value=oTxt1.value.replace(re, '***');
};
};
</script>
</head>
<body>
<textarea id="txt1" rows="10" cols="40"></textarea><br>
<input id="btn1" type="button" value="过滤" /><br>
<textarea id="txt2" rows="10" cols="40"></textarea>
</body>
- 任意字符 [abc]
例子:o[usb]t——obt、ost、out
<script>
var str='apc xpc ppc bpc spc tpc';
var re=/[apx]pc/g;
alert(str.match(re));//apc,xpc,ppc
</script>
-
范围 [a-z]、[0-9]
例子:id[0-9]——id0、id5 -
排除[^a]
例子:o[^0-9]t——oat、o?t、o t -
组合 [a-z0-9A-Z]
-
实例:偷小说
过滤HTML标签
自定义innerText方法
<script>
window.onload=function ()
{
var oTxt1=document.getElementById('txt1');
var oTxt2=document.getElementById('txt2');
var oBtn=document.getElementById('btn1');
oBtn.onclick=function ()
{
var re=/<[^<>]+>/g;
oTxt2.value=oTxt1.value.replace(re, '');
};
};
</script>
</head>
<body>
<textarea id="txt1" rows="10" cols="40"></textarea><br>
<input id="btn1" type="button" value="转换" /><br>
<textarea id="txt2" rows="10" cols="40"></textarea>
</body>
- 转义字符
.(点)——任意字符
\d(数字)、\w(数字、字母、下划线)、\s(空白,包括空格、换行、tab缩进等所有的空独白)
\D、\W、\S
量词
- 什么是量词
出现的次数
{n,m},至少出现n次,最多m次
常用量词
- {n,} 至少n次
- ‘ * 任意次 {0,}
- ? 零次或一次 {0,1}
-
- 一次或任意次{1,}
- {n} 正好n次
例子:校验邮箱
<script>
window.onload=function ()
{
var oTxt=document.getElementById('txt1');
var oBtn=document.getElementById('btn1');
oBtn.onclick=function ()
{
var re=/^\w+@[a-z0-9]+\.[a-z]+$/i;
if(re.test(oTxt.value))
{
alert('合法的邮箱');
}
else
{
alert('你丫写错了');
}
};
};
</script>
</head>
<body>
<input type="text" id="txt1" />
<input type="button" value="校验" id="btn1" />
</body>