定义:专门规定字符串中【字符串的规律】
(1)知识点
- (1.1)备选字符集
- (1.2)预定义备选字符集
- (1.3)量词:字符集出现的次数
- (1.4)选择和分组
- (1.5)转义
- (1.6)匹配指定位置
- (1.7)预判
- (1.8)汉字备选字符集
(2)细化
- (2.1)备选字符集:必须且只能多选一
<pre>
一组数字:[0-9]
一组小写字母:[a-z]
一组大写字母:[A-Z]
</pre>
- (2.2)预定义备选字符集
<pre>
\d --> [0-9]
\w --> [0-9a-zA-Z_]
\s --> 所有空字符,比如:空格 制表符 换行
\D --> 非【\d】,除了数字
. --> 除了换行和回车后的任意字符
</pre>
- (2.3)量词:字符集出现的次数
<pre>
{min,max} --> 从某个值到某个值
{min,} --> 大于等于某个值
{n} --> 固定数量
? --> 可有可无,最多一个
--> 可有可无,数量不限
--> 至少一个,数量不限
</pre>
-
(2.4)选择和分组
选择:<pre>
或 --> |
</pre>分组:
<pre>
分组 --> ( )
</pre> -
(2.5)转义
<pre>
转义 -->
</pre>
- (2.6)匹配指定位置
<pre>
开头匹配 --> ^
结尾匹配 --> $
开头或者结尾匹配 --> ^xx | xx$ (中间有|)
完全匹配 --> ^xxx$ (中间没有|)
单词匹配 --> \bxxx\b
</pre>
-
(2.7)预判:在正式匹配前,先大概预判整个字符串的规则,多用于排除法
4大类:数字,小写字母,大写字母,特殊符号 -
(2.8)汉字备选字符集:[\u4e00-\u9fa5]
jQuery插件中已经封装了大量现成的正则表达式,比如电子邮件,html标签,url地址
(3)方法
定义 RegExp:
var patt = new RegExp("e");
-
(3.1)test() 方法检索字符串中的指定值。返回值是 true 或 false。
test() 方法检索字符串中的指定值。返回值是 true 或 false。 -
(3.2)exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
var patt = new RegExp("e","g");
g:您可以向 RegExp 对象添加第二个参数,以设定检索
- (3.3)compile() 方法用于改变 RegExp。
** Tips:做验证:都要前加^,后加$ **
(4)实践
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>正则表达式</title>
</head>
<body>
</body>
</html>
<script type="text/javascript">
init();
function init() {
phoneNum();
}
/**
* 手机号:
* +86或0086 整体可有可无,最多1次
* 数量不限个空字符
* 1
* 在34578中选其一
* 9位数字
* (\+86|0086)?\s*1[34578]\d{9}
*/
function phoneNum(){
/**
* 手机号码匹配
* 有开头和结尾的
*/
var p1 = new RegExp(/^1[34578]\d{9}$/);
/**
* 手机号码匹配
* 没有开头和结尾的
*/
var p2 = new RegExp(/1[34578]\d{9}/);
// 是否匹配
console.log(p1.test("134"));//false
console.log(p1.test("13122222222"));//true
console.log(p1.test("a13122222222b"));//false
console.log(p2.test("a13122222222b"));//true
// 找出匹配内容
console.log(p2.exec("a13122222222b"));//13122222222
}
</script>
RegExp:http://www.w3school.com.cn/js/js_obj_regexp.asp
RegExp 对象:http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
网友评论