Js 正則表達式知识汇总



正則表達式:


1、什么是RegExp?RegExp是正則表達式的缩写。RegExp 对象用于规定在文本中检索的内容。


2、定义RegExp:var +变量名=new RegExp();


3、RegExp 对象有 3 个方法:


1)test()检索字符串中的指定值,返回值是true或false.


var p1=new Reg("e");

document.write(Reg.test("welcome to China!"));


2)exec()


var p1=new Reg("e");

document.write(Reg.exec("welcome to China!"));


3) compile()


var p1=new Reg("e");

document.write(Reg.compile("welcome to China!"));


4、修饰符


1)i 运行对大写和小写不敏感的匹配


2)g 运行全局匹配


3)m 运行多行匹配


5、方括号(用于查找某个范围内的字符)


1)[abc] 查找方括号之间的不论什么字符


2)[^abc] 查找不论什么不在方括号之间的字符


3)[0-9] 查找不论什么0-9之间的数字


4)[a-z] 查找不论什么小写a-z之间的字符


5)[A-Z]查找不论什么大写A-Z之间的字符


6)[A-z] 查找不论什么大写A-小写z之间的字符


7)[adgk] 查找给定集合内的不论什么字符


8)[^adgk]查找给定集合外的不论什么字符


9)(red|biue|green)查找不论什么给定的选项


6、元字符


1)\w:查找单词字符


2)\W:查找非单词字符


3)\d:查找数字


4)\D:查找非数字字符


7、 量词


n+匹配不论什么包括至少一个 n 的字符串。


n*匹配不论什么包括零个或多个 n 的字符串。


n?匹配不论什么包括零个或一个 n 的字符串。


n{X}匹配包括 X 个 n 的序列的字符串。


n{X,Y}匹配包括 X 或 Y 个 n 的序列的字符串。


n{X,}匹配包括至少 X 个 n 的序列的字符串。


n$匹配不论什么结尾为 n 的字符串。


^n匹配不论什么开头为 n 的字符串。


?=n匹配不论什么其后紧接指定字符串 n 的字符串。


?!n匹配不论什么其后没有紧接指定字符串 n 的字符串。


【练习题1】推断输入身份证格式是否正确


<body>

<label>请输入身份证号:</label>

<input name="" type="text" id="shenfen"/>

<input name="" type="submit" id="textfi" value="提交1" onclick="test()"/><!--提交button,触发函数-->

</body>

</html>

<!--推断身份证是否输入正确-->

<script>

function test()

{

var reg=new RegExp(/^[0-9]{17}[0-9|X]$/);<!--正則表達式的格式:以/^开头,以$/结尾,数字、字母范围用中括号-->

var text=document.getElementById("shenfen").value;<!--输入文本框的字符串的id跟文本框的id相应-->

//推断地区是否合法(用if...else)

if(reg.test(text))

{

alert("输入正确")

}

else

{

alert("输入错误");

}

}

</script>


效果图:


【练习题2】推断输入的邮箱格式是否正确


<body>

<label>请输入您的邮箱:</label>

<input name="" type="text" id="youxiang"/>

<input name="" type="submit" value="提交2" onclick="y()" />

</body>

</html>

<script>

function y()

{

var yx=new RegExp(/^[0-9|A-z|_]{1,17}@[A-z|0-9]{1,5}.(com|cn|net|org|cc)$/);

var shuru=document.getElementById("youxiang").value; <!--定义变量,调用的是整个function,,必须把变量写在function内-->

if(yx.test(shuru))<!--test正則表達式的方法-->

{

alert("zhengque");

}

else

{

alert("cuowu");

}

}

</script>




相对来说。js中正則表達式是一个非常重要的点。非常多地方都须要配合正则才行,所以小伙伴一定要学好这块内容。 

​​

​​