JavaScript的正则表达式

发布于:2022-08-07 ⋅ 阅读:(345) ⋅ 点赞:(0)

正则表达式: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';

 

 


网站公告

今日签到

点亮在社区的每一天
去签到