正则表达式的定义
var reg1 = new RegExp(/123/);//只要字符串中含有'123'就为true
console.log(reg1);
var reg2 = /123/;
console.log(reg2);
字符串检验方法
var flag1 = reg2.test(123342324342);
console.log(flag1);//true
var flag2 = reg2.test("abc");
console.log(flag2);//false
特殊字符
//特殊字符
/*
1.边界符
^以……开头
$以……结尾
2.字符类
[]一系列可供选择的字符,只要包含其中一个就可以
^[]$一系列可供选择的字符,只能包含其中一个
3.范围类
- 例如a-z
*/
var tou = /^abc/;
var wei = /abc$/;
console.log(tou.test('abcde'));//true
console.log(tou.test('cswdsabc'));//false
console.log(wei.test('eabc'));//true
console.log(wei.test('abcde'));//false
var touwei = /^abc$/;//必须是'abc'这个字符串
console.log(touwei.test('abcabc'));//false
console.log(touwei.test('abc'));//true
var one = /[abc]/;
console.log(one.test('abedfds'));//true
console.log(one.test('fghyuj'));//false
var only = /^[abc]$/;
console.log(only.test('a'));//true
console.log(only.test('aa'));//false
console.log(only.test('adfty'));//false
var cant = /^[^abd]$/;//如果[]里面有^则表示不能出现[]里面的字符
量词
?出现0次或1次
*出现0次或多次
+出现1次或多次
{m,n}出现次数大于等于m小于等于n
{m,}至少出现m次
{,n}至多出现n次
预定义
\d 0-9
\D 0-9以外的字符
\w 任意的字母数字和下划线
\W 任意字母数字和下划线以外的字符
\s 空格
\S 空格以外的字符
括号
1.大括号表示重复
2.中括号表示字符组
3.小括号表示优先级
替换
replace(正则表达式或原有字符串,替换为的新字符串);
//正则表达式可以在后面加上修饰
g表示全局搜索 i表示不区分大小写 gi全局搜索+忽略大小写
var zhan = document.getElementById("zhan");
var btn = document.getElementById("go");
var xxx = document.getElementById('text');
btn.onclick = function(){
zhan.innerHTML = xxx.value.replace(/激情|gay/g,'**');
}
案例
输入提示1
var btn = document.getElementById("go");
var s = document.getElementById('xxx')
var name = document.getElementById('text').value;
var reggg = /[0-9a-zA-Z]{3,9}/;
btn.onclick = function(){
if(reggg.test(name))
{
s.innerHTML = '用户名合法';
s.style.color = 'green';
}
else
{
s.innerHTML = '用户名不合法';
s.style.color = 'red';
}
}
输入提示2
<div id = "biggest">
<ul>
<li>
手机号
<input type="text" id="telephone">
<span id="telephone_span"></span>
</li>
<li>
qq号
<input type="text" id="qqnumber">
<span id="qqnumber_span"></span>
</li>
<li>
邮箱
<input type="text" id="youxiang">
<span id="youxiang_span"></span>
</li>
<li>
验证码
<input type="text" id="yzm">
<span id="yzm_span"></span>
</li>
<li>
登录密码
<input type="password" id="password">
<span id="password_span"></span>
</li>
<li>
确认密码
<input type="password" id="unpassword">
<span id="unpassword_span"></span>
</li>
</ul>
</div>
<script>
var inputs = document.querySelectorAll("input");
var spans = document.querySelectorAll("span");
var regs = [
/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9]|199)\d{8}$/,
/[1-9][0-9]{4,14}/,
/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
/[/d{6}]/,
/^[a-zA-Z]\w{5,17}$/]
inputs[0].onblur = function(){
if(regs[0].test(this.value))
{
spans[0].innerHTML = "输入正确";
spans[0].style.color = 'green';
}else{
spans[0].innerHTML = "输入错误";
spans[0].style.color = 'red';
}
}
//只写的手机号的验证,其他也是同理,对应的正则表达式已经在数组中列出(才不是懒得写)
</script>