正则表达式:admin@atguigu.com,admin@.com adminatguigu.com,邮件的规则:
1.前面可以是xxxx乱七八糟。2.跟着一个@。3.后面可以是xxxx乱七八糟。4..com获取其他乱七八糟。
正则表达式用于定义字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,获取将字符串中符号规则的内容提取出来。
语法:var 变量 = new RegExp('正则表达式',’匹配模式‘);使用typeof检查正则对象,会返回object。var reg = new RegExp('a');这个正则表达式可以检查一个字符串是否含有a,在构造函数中可以传递一个匹配模式作为第二个参数。可以是 i 忽略大小写 g全局匹配模式。
var reg = new RegExp('a',’i‘); var str = 'a';
在没有规则的字符串里把有规则的提前出来
正则表达式方式:test(),使用这个方法用来检查一个字符串是否符合正则表达式的规则,如果符号则返回true,否则返回false。reg.test(str)
使用字面量创建正则表达式,语法,var 变量 =/正则表达式/匹配模式,使用字面量的方法创建更加简单,使用构造函数更加灵活。
创建一个正则表达式,检查一个字符串中是否有a或者b。
reg = /a|b|c/;
创建一个正则表达式检查一个字符串是否含有字母。
//reg=/a|b|c|d|e|f|g/
[]里的内容也是或的关系,[ab] ==a|b ,[a-z]任意小写字母,[A-Z]任意大写字母
reg = /[A-z]/;
检查一个字符串是否含有abc 或者adc 或者aec
reg=/a[bde]c/;
[^ ] :除了
reg = /[^ab]/;
split():可以将一个字符串拆分为一个数组,方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式拆分字符串。这个方法即使不指定全局匹配,也会全部拆分
根据任意字母来将字符串拆分
var str = '1a2b3c4d5e6f7'; var result = str.split(/[A-z]/); console.log(result); 结果:1,2,3,4,5,6,7
search():可以搜索字符串中是否含有指定内容,如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1,它可以接受一个正则表达式作为参数,然后根据正则表达式检索字符串。seach()只会查找第一个,即使设置全局匹配也没有用
var = 'hello hello afc';
搜索字符串是否含有abc 或 aec 或agc
result = str.search(/a[bef]c/);
match():可以根据正则表达式,从一个字符串符合条件的内容提取出来,默认情况下我们的match只会找到一个符合要求的内容,找到以后就停止检索,我们可以设置正则表达式为全局匹配模式,这样就会匹配到所以的内容,可以为一个正则表达式设置多个匹配模式,且顺序无所谓。match()会匹配到的内容封装到一个数组中返回即使只查询到一个结果
str = '1a2b3c4d5e6f7A8B9C'; result = str.match(/[a-z]/ig);
replace():可以将字符串中指定内容替换为新内容,参数:1.被替换的内容,可以接受一个正则表达式作为参数.2.新的内容。默认只会替换第一个。
result = str.replace(/[a-z]/gi,'');
量词
通过量词可以设置一个内容出现的次数,量词只对它前面的一个内容起作用。
{n}正好出现n次,{m,n}出现m-n次,{m,}m次以上,+ 至少一个,相当于{1,},*0个或多个,相当于{0,},?0个或1个,相当于{0,1}
检查一个字符串中是否以a开头,^ 表示开头 $表示结尾
reg = /^a/; //匹配开头的a reg = /a$/; //匹配结尾的a
如果在正则表达式中同时使用^$则要求字符串必须完全符合正则表达式。
reg =/^a|a$/;
创建一个正则表达式,用来检查一个字符串是否是一个合法手机号
手机号规则:13567890123 1.以1开头。2.第二位3-9任意数字。3.三位以后任意数字9个。
^1 [3-9] [0-9]{9}$
var phoneStr = 'asdasdasd13067890123asdasdasd';
var phoneReg = /^1[3-9][0-9]{9}$/;
检查一个字符串中是否含有. .表示任意字符 在正则表达式中使用\作为转义字符。
\. 来表示. \\表示\
var reg = /\./; reg = /\\/; reg =new RegExp('\.')
\w:任意字母,数字,_[A-z0-9_]
\W :除了字母、数字、_[^A-z0-9_]
\d:任意的数字[0-9]
\D:除了数字[^0-9]
\s:空格
\S除了空格
\b:单词边界
\B:除了单词边界
创建一个正则表达式检查一个字符串中是否含有单词child
reg = /\bchild\b/;
接受一个用户的输入
//var str = prompt('请输入你的用户名:');
var str =‘ hello ’;
//去除掉字符串中的前后空格,去除空格就是使用‘’来替换空格
//str = str.replace(/\s/g,'');
//去除开头的空格
//str str.replace(/^\s*/,'');
去除结尾的空格
//str = str.replace(/\s*$/,'');
/^\s*$/g 匹配开头和结尾的空格
电子邮件
hello .nihao @ abc .com。cn
任意字母数字下划线 .任意字母下划线@ 任意字母数字 .任意字母(2-5位) .任意字母(2-5位)
\w{3,} (\.\w+)* @ [A-z0-9]+ (\.[A-z]{2,5}){1,2}
var emailReg = /\w{3,} (\.\w+)* @ [A-z0-9]+ (\.[A-z]{2,5}){1,2}/;
var email ='abc@abc.com';