JavaScript正則表達式知识汇总
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中正則表達式是一个非常重要的点。非常多地方都须要配合正则才行,所以小伙伴一定要学好这块内容。
參考来源:
Js 正則表達式
http://www.lai18.com/content/351738.html
延伸阅读
4正則表達式推断是否存在中文和全角字符和推断包括中文字符串长度
6用正則表達式 动态创建/添加css style script 兼容IE firefox
7javascript 获取链接文件地址中第一个斜线内的正則表達式
24jQuery源代码分析-02正則表達式 RegExp 经常使用正則表達式
25javascript 进阶篇1 正則表達式,cookie管理,userData
27js正則表達式
32JavaScript高级程序设计(第3版)学习笔记12 js正則表達式
34有用的JS正則表達式(手机号码/IP正则/邮编正则/电话等)
38怎样使用Javascript正則表達式来格式化XML内容
40Jquery Validate 正則表達式有用验证代码大全
55正則表達式中特殊符号及正則表達式的几种方法总结(replace,test,search)
60js正則表達式中test,exec,match方法的差别说明
66JS使用replace()方法和正則表達式进行字符串的搜索与替换实例
72javascript正則表達式參数/g与/i及/gi的使用指南
85javascript正則表達式之search()使用方法实例
86javascript正則表達式使用replace()替换手机号的方法
89javascript使用正則表達式实现去掉空格之后的字符
91Javascript 正則表達式实现为数字加入千位分隔符
92【JavaScript】利用正則表達式检查输入框输入的是否为网址
95JavaScript正則表達式中的ignoreCase属性使用具体解释
96具体解释JavaScript正則表達式中的global属性的使用
97在JavaScript的正則表達式中使用exec()方法
JavaScript正則表達式知识汇总的更多相关文章
- javascript 正則表達式补充
定义 JavaScript种正則表達式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...
- javascript正則表達式 "\b"问题
preface 昨晚在看<javascript权威指南>后.看见作者自己封装一个兼容全部浏览器的山寨HTML5新API classLIst类.自己想了想认为自己也要去玩一下.可是能力还是有 ...
- DOM笔记(十):JavaScript正則表達式
一.RegExp ECMAScript通过RegExp类型类支持正則表達式,语法和Perl类似: var exp = /pattern/flags; patternb部分是不论什么简单的或复杂的正則表 ...
- JavaScript 正則表達式
一.简单介绍 1.什么是正則表達式 正則表達式本身就是一种语言,这在其他语言是通用的. 正則表達式(regular expression)描写叙述了一种字符串匹配的模式,能够用来检查一个串是否含有某种 ...
- 经常使用的正則表達式归纳—JavaScript正則表達式
来源:http://www.ido321.com/856.html 1.正则优先级 首先看一下正則表達式的优先级,下表从最高优先级到最低优先级列出各种正則表達式操作符的优先权顺序: 2.经常使用的正則 ...
- javascript——正則表達式
正則表達式(RegExp对象):主要用于表单验证 1.创建正則表達式: (1).var ret = /pattern/; pattern是内容.能够是正則表達式的内容,能够是字符或是其它的内容 (2) ...
- javascript正則表達式
定义一个正則表達式 能够用字面量 var regex = /xyz/; var regex = /xyz/i; 也能够用构造函数 var regex = new RegExp('xyz'); var ...
- 使用正則表達式的格式化与高亮显示json字符串
使用正則表達式的格式化与高亮显示json字符串 json字符串非常实用,有时候一些后台接口返回的信息是字符串格式的,可读性非常差,这个时候要是有个能够格式化并高亮显示json串的方法那就好多了,以下看 ...
- JavaScript使用正則表達式
2.0 简单介绍 正則表達式是能够用来查找与给定模式匹配的文本的搜索模式.比如,在上一章中,我们在一个较长的字符串中查找子字符串Cookbook: var testValue = "This ...
随机推荐
- nodejs-Module
nodejs的打包程序 模块:实现特定功能的文件 1.通过require引入模块 2.模块中的功能(变量,函数),通过赋给exports对象的某个属性提供给调用者使用 1 2 function sum ...
- 在magento的eav模型中如何在更新记录时只在value表的原值上更新
1,一般情况下,当我们在调用getModel在load某条实体接着更新对应实体上的值是,都不会覆盖原来的实体value表上的值,而是保留原来的,并在value表上重新创建一条值记录,比如初始表如下: ...
- cogs 969. [NOIP2006] 数列
969. [NOIP2006] 数列 ★☆ 输入文件:sequenc.in 输出文件:sequenc.out 简单对比时间限制:1 s 内存限制:162 MB 题目描述 给定一个正整数 ...
- HDU 4349
想了好久,没思路.看别人说是卢卡斯,就去看卢卡斯了,看完卢卡斯,再用它推导一下,很容易就知道,答案是2^n的二进制中一的个数.改天找个时间写个卢卡斯的总结.~~~今晚竟然要上形势政治课,靠.... # ...
- FZU Problem 1853 Number Deletion
Problem 1853 Number Deletion Accept: 80 Submit: 239 Time Limit: 1000 mSec Memory Limit : 32768 ...
- 建议53:用状态模式美化代码,关于python-state工具包的理解
在<编写高质量代码:改善python程序的91个建议>的建议53:用状态模式美化代码小节中,介绍了状态模式例如以下:就是当一个对象的内在状态改变时,同意改变其行为,但这个对象看起来 ...
- CC2540 与 CC2541 差别 1
CC2540 的 1234 PIN 是 USB 功能,4 PIN 是 USB 的电压输入引脚. CC2541 没有 USB 功能.它的 1234 PIN 是 I2C 功能,为了与 CC2540 引脚兼 ...
- php+mysql 最简单的留言板
学完了记得动手操作. 測试地址(未过滤) <html> <body> <head><meta http-equiv="Content-Type&qu ...
- 使用android.graphics.Path类自绘制PopupWindow背景
PopupWindow简单介绍 PopupWindow是悬浮在当前activity上的一个容器,用它能够展示随意的内容. PopupWindow跟位置有关的API有以下几个: showAsDropDo ...
- LightOJ--1094-- Farthest Nodes in a Tree(树的直径裸题)
Farthest Nodes in a Tree Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu S ...