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()"/><!--提交按钮,触发函数-->
</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中正则表达式是一个很重要的点,很多地方都需要配合正则才行,所以小伙伴一定要学好这块内容。

(0)

相关推荐

  • js正则表达式test()和exec()用法实例

    本文实例讲述了js正则表达式test()和exec()用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: <html> <head> <script type="text/javascript"> //正则.test(内容),返回true或false function t1(){  var con = document.getElementsByName('content')[0].value;//需要查找的内容  var reg = /h

  • js正则表达式中的单行模式与多行模式实例分析

    本文实例分析了js正则表达式中的单行模式与多行模式.分享给大家供大家参考.具体如下: js正则表达式是不支持单行模式的.也就是说,不能把某段内容(有换行),采用模式修正符来处理,使整段内容当成一行来处理. 正则多行替换,需要添加/mg模式增强符. <html> <head> <script type="text/javascript"> //正则替换链接,链接有换行 function t1(){ var con = document.getEleme

  • JS使用正则表达式除去字符串中重复字符的方法

    本文实例讲述了JS使用正则表达式除去字符串中重复字符的方法.分享给大家供大家参考,具体如下: 这里演示一个简单的JavaScript正则表达式实例,将一串含有重复字符串中的多余字符滤除掉,请运行查看效果. 具体代码如下: <html> <head> <title>利用正则表达法除去字符串中的重复字符</title> </head> <body> <script language="javascript">

  • JS正则表达式基本用法(经典全)

    //校验是否全由数字组成 funtin isigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.x(s)) rturn fals rturn tru } JavaSript表单验证mail,判断一个输入量是否为邮箱mail,通过正则表达式实现. //检查mail邮箱 funtin ismail(str){        var rg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3})

  • 使用正则表达式的格式化与高亮显示json字符串

    json字符串很有用,有时候一些后台接口返回的信息是字符串格式的,可读性很差,这个时候要是有个可以格式化并高亮显示json串的方法那就好多了,下面看看一个正则表达式完成的json字符串的格式化与高亮显示 首先是对输入进行转换,如果是对象则转化为规范的json字符串,不是对象时,先将字符串转化为对象(防止不规范的字符串),然后再次转化为json串.其中json为输入. 复制代码 代码如下: if (typeof json !== 'string') {     json = JSON.string

  • JS应用正则表达式转换大小写示例

    js中应用正则表达式转换大小写,代码很简单,看代码: 以下首字母大写,其它字母小写 <script type="text/javascript"> function replaceReg(reg,str){ str = str.toLowerCase(); return str.replace(reg,function(m){return m.toUpperCase()}) } var reg = /\b(\w)|\s(\w)/g; var str = 'share jav

  • js正则表达式中的问号几种用法小结

    在表示重复的字符后面加问号,比如+?,*?,{2,3}?可以停止匹配的贪婪模式. var pattern=/\w{2,3}/; console.log("aaaa".match(pattern)[0]); /*结果"aaa";贪婪模式下会尽可能多的匹配, 所以会匹配3个重复的字符 */ var pattern2=/\w{2,3}?/; console.log("aaaa".match(pattern2)[0]); /* *结果"aa&q

  • js正则表达式中exec用法实例

    本文实例讲述了js正则表达式中exec用法.分享给大家供大家参考.具体如下: exec要注意以下几点: 1. exec返回的是一个数组 2. 该数组的属性有input(被匹配的整个字符串) index(匹配到第一个元素的开始位置) 3. lastIndex还有个匹配到第一个属性后,指向的位置 这个属性智能由RegExp 对象!!!来访问 4. 通过这个属性可以来获取 所用所匹配到字符的字符串 代码如下: function o_exec(){ var str="hjjh,catfff,dog,ca

  • 史上最详细的js日期正则表达式分享

    最简单的正则 如 : /d{4}-/d{2}-/d{2}但是实际情况却不是那么简单,,要考虑,有效性和闰年等问题..... 对于日期的有效范围,不同的应用场景会有所不同.MSDN中定义的DateTime对象的有效范围是:0001-01-01 00:00:00到9999-12-31 23:59:59. UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z. 先考虑与年份无关的前三条规则,年份可统一写作 (?!0000)[0-9]{4} 下面仅考虑月和日的正则 1

  • js正则表达式匹配数字字母下划线等

    1.一个正则表达式,只含有汉字.数字.字母.下划线不能以下划线开头和结尾: ^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$ 其中: ^ 与字符串开始的地方匹配 (?!_) 不能以_开头 (?!.*?_$) 不能以_结尾 [a-zA-Z0-9_\u4e00-\u9fa5]+ 至少一个汉字.数字.字母.下划线 $ 与字符串结束的地方匹配 放在程序里前面加@,否则需要\\进行转义 @"^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]

随机推荐