正则表达式
admin@163.com
邮件的规则:
1.前边可以是xxx
2.跟着一个@
3.后边可以是xxx.com
正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来。
// 创建正则表达式的对象
/**
* 语法:
* var 变量 = new RegExp("正则表达式","匹配模式");
* 匹配模式有两种:
* 1、忽略大小写 i
* 2、全局匹配模式 g
*/
// 检查一个字符串中是否包含a
var reg = new RegExp(“a”, "i");
/**
* 正则表达式的方法:
* test()
* - 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,符合返回true,否则返回false
*/
var str = "a";
console.log(reg.test(str));
使用字面量来创建正则表达式
使用字面量的方式创建更加简单,使用构造函数创建更加灵活。
/**
* 语法:var 变量 = /正则表达式/匹配模式
*/
var reg = /a/i;
// 创建一个正则表达式,检查一个字符串中是否有a或b
//使用 | 表示或者的意思
reg = /a|b/;
/**
* []中的内容也是或的关系
* [ab] == a|b
* [a-z] 任意小写字母
* [A-Z] 任意大写字母
* [A-z] 任意字母
* [^ ] 除了[]中的都可以
* [^ab] 除了a或b都能匹配
* [0-9] 任意数字
*/
reg = /[a-z]/
// 检查一个字符串中是否含有abc或adc或aec
reg = /a[bde]c/
console.log(reg.test("aec"));
/**
* 量词
* - 通过量词可以设置一个内容出现的次数,仅对{}之前的内容有用
* - {n} 正好出现n次
* - {m,n} 出现m~n次
* - {m,} 出现m次以上
* - + 至少一个
* - * 0~n个,相当于{0,}
* - ? 0或1个都行,相当于{0,1}
*/
var = reg = /(ab){3}/
console.log(reg.test("ababab")); // true
reg = /ab{1,3}c/;
console.log(reg.test("abc")); // true
/**
* 检查一个字符串中是否以a开头
* ^ 表示开头
* $ 表示结尾
* 如果在正则表达式中同时使用^ $,则要求字符串必须完全符合正则表达式
*/
reg = /^a/; // 匹配开发为a
reg = /a$/; // 匹配结尾为a
reg = /^a|a$/; //以a开头,或者,以a结尾
console.log(/^a/.test("abc")); // true
console.log(/^a/.test("bac")); // false
/**
* 检查一个字符串中是否含有 .
* . 表示任意字符
* 在正则表达式中使用\作为转义字符
* \. 表示 .
* \\ 表示 \
*/
- 注意:在使用构造函数时,由于它的参数是一个字符串,而\是字符串中转义字符,如果要使用\,则需要使用\\代替。
/**
* \w - 任意字母、数字、_ [A-z0-9]
* \W - 除了字母、数字、_ [^A-z0-9]
* \d - 任意数字 [0-9]
* \D - 除了数字 [^0-9]
* \s - 包含空格
* \S - 全是空格
* \b - 单词边界
* \B - 除了单词边界
*/
var reg = /child/;
console.log(reg.test("hello children")); // true
reg = /\bchild\b/
console.log(reg.test("hello children")); // false
console.log(reg.test("hello child .")); // true
// 去除字符串中的前后空格
// str = str.replace(/^\s+|\s+$/g, "");
// 去除开头的空格
// str = str.replace(/^\s+/, "");
// 去除结尾的空格
// str = str.replace(/\s+$/, "");
/**
* 手机号正则
*
* 手机号规则:
* 1.以1开头
* 2.第二位3-9任意数字
* 3.三位以后任意数字
*/
var phoneReg= /^1[3-9][0-9]{9}$/;
/**
* 电子邮件
* hello .nihao @ abc .com .cn
* 任意字母数字下划线 .任意字母数字下划线 @ 任意字母数字 .任意字母(2-5位) .任意字母(2-5位)
*/
var emailReg= /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/