正则表达式

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值