为什么要有正则表达式?
因为查找是一个比较复杂的东西,我们想要更准确得到自己想要的。
什么是正则表达式?
它可以定义一种字符串逻辑的公式,来和要查找的东西做匹配,找到自己想要的。
定义规则:1、使用 /规则/修饰符
2、新创键一个RegExp对象,给两个参数:规则和修饰符。
var str = "HelloCoolDog";
var patt = /HelloCoolDog/i;
var patt1 = newRegExp("hello","i")
常用的修饰符:
i:不区分大小写。
var checkCode = "HelloCoolDog";
var str = prompt("请输入验证码");
var patt = /hellocooldog/i
var result = str.search(patt);
g:全局查找,一直查找到字符串结束。而search只查找到第一个匹配的值就结束。
字符模式
[hel]:从里面的中任意一个去匹配字符串
[0-9]:匹配所有数字
var str = "123456789HelloCoolDog";
var patt = /[a-z]/g;
var result = str.match(patt);
document.write(result);
[a-z]:匹配所有小写字母
[A-Z]:匹配所有的大写字母
var str = "123456789HelloCoolDog";
/*var patt = /[A-Z]/g;*/
var patt = /([a-z]|[A-Z])/g;
var result = str.match(patt);
document.write(result);
常用的元字符:
\w:单词字符 包括所有的字母数字和下划线。W是word的缩写。
var patt = /\w/g;
\s:空格(space的缩写)
var patt = /\s/g;
\d:数字 digital的缩写
var patt = /\d/g;
常用的量词
var patt = /1*/g;//匹配0个或多个
var patt2 = /ca+/g;//匹配1个或多个
var patt2 = /ca?/g;//匹配1个或多个
指定具体个数:
var patt4 = /c{2}/g;//匹配两个c在一块
var patt4 = /c{2,4}/g;//匹配两个c,最多4个在一块
var patt4 = /c{2,}/g;//匹配最少两个c在一块
RegEep常用的两种方法:
Exec():返回的是符合正则表达式新的字符串
var result = patt.exec(str);
document.write(result)
Test():返回的ture和false当字符串满足表达式为TRUE,不满足FALSE
var str = prompt("请输入密码:")
var patt = /(^[a-z])|([A-Z]) \w{5,17}$/g;
if(patt.test(str)){
alert("66")
}else{
alert("55")
}