菜单

JS基础种类之正则表明式

2019年5月18日 - Ajax
<script type="text/javascript">
  /*
   创建了一个正则表达式
   参数1:模式是:girl,意思是说可以匹配 "girl"这样的字符串
   参数2:模式修饰符:gi g代表全局匹配 i代表不区分大小写
  */
 var pa = new RegExp("girl", "gi");
  //测试参数中的字符串"你好我的girl" 是否与匹配模式匹配。
  var isExist = pa.test("你好我的girl"); // 在本例中,是匹配的,这个字符串包含girl,所以返回true
  alert(isExist); //true
</script>

JS基础连串之正则表明式,js基础正则表明式

正则表明式是1个很牛逼的东东,前几天在这里只是简单的给刚刚接触JS的人分布一下,里面若有冲突的地方招待大家留言!

图片 1

一.1 什么是正则表达式

​ 正则表达式(regular
expression)是一个描述字符形式的对象,ECMAScript的RegExp
类表示正则表达式,而String和RegExp都定义了运用正则表明式举办有力的方式相称和文本检索与替换的函数。


正则表达式用于对字符串情势相配及查找替换,是对字符串实践方式相称的强有力工具。

壹.二 正则表明式的法力

​ 正则表达式首要用来注脚客户端的输入数据。


用户填写完表单单击开关之后,表单就能被发送到服务器,在服务器端常常会用PHP、ASP.NET、JSP等服务器脚本对其张开更为管理。因为客户端验证,能够节省大批量的服务器端的系统能源,并且提供越来越好的用户体验。

贰、创造正则表达式==(1二三)==

要动用正则表明式,必须先创设正则表明式对象,有二种创立对象的措施:

二.1 方式一:使用主要字new创制

var patt = new RegExp(pattern,modifiers);

参数一:正则表达式的方式。字符串格局

参数2:方式修饰符。用于钦点全局相配、区分轻重缓急写的十分和多行相称

<script type="text/javascript">
  /*
   创建了一个正则表达式
   参数1:模式是:girl,意思是说可以匹配 "girl"这样的字符串
   参数2:模式修饰符:gi g代表全局匹配 i代表不区分大小写
  */
 var pa = new RegExp("girl", "gi");
  //测试参数中的字符串"你好我的girl" 是否与匹配模式匹配。
  var isExist = pa.test("你好我的girl"); // 在本例中,是匹配的,这个字符串包含girl,所以返回true
  alert(isExist); //true
</script>

2.2 格局贰:使用正则表明式直接量

var pa = /pattern/modifiers;

五个/中间的表示正则表达式的方式,最终3个/的后边是格局修饰符

比方说:上边包车型大巴例证能够如此写 var pa = /girl/gi;

小心:那年方式和形式修饰符都能再增加双引号或单引号

<script type="text/javascript">
 var pa = /girl/gi;
 alert(pa.test("厉害了我的girl")); //true
</script>

三、正则表明式方式修饰符==(1贰陆)==

JavaScript中共有三种形式修饰符:g i u

  1. g:表示全局。意思是说会对三个字符串举办反复合营。假诺不写g则只突出二次,一旦匹配成功,则不会再一次相称
  2. i:表示忽略大小写。意思是说在11分的时候不区分轻重缓急写
  3. u:表示能够多行相配。

4、正则表明式方法详解==(1二7)==

时常接纳的正则表明式方法有七个test() 和 exec()

4.1 test()方法

test(字符串)

在只想清楚对象字符串与有个别形式是或不是同盟,但不必要驾驭其文件内容的境况下,使用那一个艺术丰富有益。因而,
test() 方法日常被用在 if 语句中。

<script type="text/javascript">
 var pa = /girl/gi;
 if(pa.test("厉害了我的girl")){
  alert("这个女孩和你很配");
 }else {
  alert("你注定没有女孩去匹配");
 }
</script>

4.2 exec()方法

exec(字符串):该情势为专门为捕获组而布置的

<script type="text/javascript">
 var pa = /girl/gi;
 var testStr = "myGirl, yourgirl, hisgIrl";
 var girls = pa.exec(testStr); //捕获
 alert(girls.length + ":" + (girls instanceof Array)); //正则表达式没有捕获组,所以数组长度为1
 alert(girls[0]); //第一次捕获的是 Girl
  //因为我们是用的全局匹配,所以此次匹配的时候从上次匹后的位置开始继续匹配
 alert(pa.exec(testStr)[0]);  // girl
 alert(pa.exec(testStr)); // gIrl
 alert(pa.exec(testStr)); //继续向后没有匹配的字符串,所以返回null
  // 返回null,如果继续再匹配,则会回到字符串的开始,重写开始匹配。
 alert(pa.exec(testStr)); // Girl
  // ...开启新一轮匹配
</script>

故此大家只要想找到任何男才女貌的字符串能够时候用循环,甘休条件就是相配结果为null

<script type="text/javascript">
 var pa = /girl/gi;
 var testStr = "myGirl, yourgirl, hisgIrl";
 var girls;
 while(girls = pa.exec(testStr)){ //如果等于null,会自动转成 false,结束。
  alert(girls);
 }
</script>

分组。在正则表明式中用()括起来职务是壹组。组能够嵌套。

<script type="text/javascript">
  //()内的内容就是第1组(Girl),其实我们完整真个表达式可以看出第0组 girl(Girl)
  // 将来对应着匹配结果数组的下标。 
 var pa = /girl(Girl)/gi; 
 var test = "girlGirl abdfjla Girlgirl fal girl";
 var girls;
 while(girls = pa.exec(test)){
  //匹配之后,数组的第0个元素对应的这第0组的匹配结果,第1个元素对应着第1组的匹配结果
  for (var i = 0; i < girls.length; i++) {
   console.log(girls[i]);
  }
  console.log("-------------");
 }
</script>
//最终运行结果:
girlGirl
Girl
-------------
Girlgirl
girl
------------

5、正则表明式规则==(1二四)==

表明式规则

正则表达式元字符是富含特殊含义的字符。它们有一点点特殊意义,能够决定非常格局的

措施。反斜杠后的元字符将失去其非常意义。

字符类:单个字符和数字

[0-9A-Za-z] 
元字符/元符号                    相称情形
.                         相称除换行符外的即兴字符
[a-z0-9]                     相配括号中的字符聚焦的随机字符
[^a-z0-9]                     相配放肆不在括号中的字符集中的字符
\d ==[0-9]                    相配数字
\D ==[^0-9]                        相配非数字,同[^0-9]相同
\w     [0-9A-Za-z_]                    匹配字母和数字及_
\W                         相配非(字母和数字及_)

字符类:空白字符
元字符/元符号                    相称处境
\0                             匹配null 字符
\b                             相称空格字符
\n                             相配换行符
\r                             相配回车字符
\t                             相称制表符
\s                             相称空白字符、空格、制表符和换行符
\S                             相配非空白字符

字符类:锚字符

元字符/元符号                    相配意况
^                             行首佳人才子
$                             行尾相配

字符类:重复字符
元字符/元符号                                相称意况
?  例如(x?)                            匹配0个或1 个x
*  例如(x*)                            相配0个或私下多个x
+  举例(x+)                            相配至少三个x
(xyz)+                                     相配至少三个(xyz)
{m,n} 譬喻x{m,n}  n>=次数>=m            相配最少m个、最多n个x
{n}                                        相称前壹项n次    
{n,}          相配前1项n次,大概屡屡

6、常用正则表示==(128)==

一、检查邮编

var pattern = /[1-9][0-9]{5}/; //共6位数字,第一位不能为0
var str = '224000';
alert(pattern.test(str));

二、检查文件压缩包

var pattern = /[\w]+\.zip|rar|gz/; //\w 表示所有数字和字母加下划线
var str = '123.zip'; //\.表示匹配.,后面是一个选择
alert(pattern.test(str));

三、删除多余空格

var pattern = /\s/g; //g 必须全局,才能全部匹配
var reg=new RegExp('\\s+','g');
var str = '111 222 333';
var result = str.replace(pattern,''); //把空格匹配成无空格
alert(result);

肆、删除空格

var pattern = /^\s+/; 
var str = ' goo gle ';
alert(str+" "+str.length);
var result = str.replace(pattern, '');
alert(result+" "+result.length);
pattern = /\s+$/; 
result = result.replace(pattern, '');
alert(result+" "+result.length);
pattern = /\s+/g; 
result = result.replace(pattern, '');
alert(result+" "+result.length);
5、简单的电子邮件验证
var pattern = /^([a-zA-Z0-9_\.\-]+)@([a-zA-Z0-9_\.\-]+)\.([a-zA-Z]{2,4})$/;
var str = '[email protected]';
alert(pattern.test(str));
var pattern = /^([\w\.\-]+)@([\w\.\-]+)\.([\w]{2,4})$/;
var str = '[email protected]';
alert(pattern.test(str));

7、协理正则表明式的字符串方法

方法 描述
search 检索与正则表达式相匹配的第一个匹配项的索引。
match 找到一个或多个正则表达式的匹配。
replace 替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。
<script type="text/javascript">
 var s = "Abc123aBc";
 alert(s.search(/abc/gi)); 
 alert(s.search(/abc/gi)); // 即使设置的全局模式,每次search也是从开始向后查找
 //match方法和正则表达式的exec()方法的作用是一样的,但是match会一次性把所有的匹配放在一个数组中,全部返回
 alert(s.match(/abc/gi)); // Abc,aBc
 alert(s.replace(/[ab]/gi, "x"));   //把a或b替换成x
 var ss = s.split(/[0-9]+/gi); //用1个或多个数字切割。 Abc,aBc
 alert(ss);
</script>

以上所述是笔者给我们介绍的JS基础类别之正则表明式,希望对大家有着帮衬,要是我们有其它疑问请给自家留言,小编会及时回复我们的。在此也极其谢谢我们对帮客之家网址的协助!

http://www.bkjia.com/zzbds/1182461.htmlwww.bkjia.comtruehttp://www.bkjia.com/zzbds/1182461.htmlTechArticleJS基础系列之正则表达式,js基础正则表达式
正则表达式是3个很牛逼的东东,明天在此地只是简短的给刚刚接触JS的人遍布一下,里面若有…

正则表明式是三个很牛逼的东东,前几日在此间只是轻松的给刚刚接触JS的人广泛一下,里面若有争议的地点招待我们留言!

​ 正则表明式(regular
expression)是八个叙述字符情势的对象,ECMAScript的RegExp
类表示正则表明式,而String和RegExp都定义了应用正则表明式实行有力的方式相配和文本检索与替换的函数。

JavaScript中国共产党有三种格局修饰符:g i u

字符类:空白字符
元字符/元符号                    相称情形
\0                             匹配null 字符
\b                             相配空格字符
\n                             相配换行符
\r                             相配回车字符
\t                             相配制表符
\s                             相称空白字符、空格、制表符和换行符
\S                             相配非空白字符

[0-9A-Za-z] 
元字符/元符号                    相配意况
.                         相配除换行符外的自由字符
[a-z0-9]                     相称括号中的字符集中的即兴字符
[^a-z0-9]                     相称任性不在括号中的字符集中的字符
\d ==[0-9]                    相称数字
\D ==[^0-9]                        相称非数字,同[^0-9]相同
\w     [0-9A-Za-z_]                    相配字母和数字及_
\W                         相称非(字母和数字及_)

字符类:重复字符
元字符/元符号                                相称情形
?  例如(x?)                            匹配0个或1 个x
*  例如(x*)                            相称0个或随便三个x
+  比方(x+)                            相配至少多少个x
(xyz)+                                     相配至少贰个(xyz)
{m,n} 比如x{m,n}  n>=次数>=m            相称最少m个、最多n个x
{n}                                        匹配前1项n次    
{n,}          相配前一项n次,也许屡屡

时常采用的正则表明式方法有多少个test() 和 exec()

<script type="text/javascript">
 var s = "Abc123aBc";
 alert(s.search(/abc/gi)); 
 alert(s.search(/abc/gi)); // 即使设置的全局模式,每次search也是从开始向后查找
 //match方法和正则表达式的exec()方法的作用是一样的,但是match会一次性把所有的匹配放在一个数组中,全部返回
 alert(s.match(/abc/gi)); // Abc,aBc
 alert(s.replace(/[ab]/gi, "x"));   //把a或b替换成x
 var ss = s.split(/[0-9]+/gi); //用1个或多个数字切割。 Abc,aBc
 alert(ss);
</script>

一.贰 正则表达式的法力

参数壹:正则表明式的形式。字符串方式

<script type="text/javascript">
 var pa = /girl/gi;
 alert(pa.test("厉害了我的girl")); //true
</script>

据此大家只要想找到任何匹配的字符串能够时候用循环,停止条件就是格外结果为null

您或许感兴趣的稿子:

四、正则表明式方法详解==(12七)==

​ 正则表明式首要用来验证客户端的输入数据。

2、检查文件压缩包

<script type="text/javascript">
 var pa = /girl/gi;
 if(pa.test("厉害了我的girl")){
  alert("这个女孩和你很配");
 }else {
  alert("你注定没有女孩去匹配");
 }
</script>

二.一 格局一:使用首要字new创制

要利用正则表达式,必须先创立正则表达式对象,有二种创设对象的艺术:

图片 2

var pattern = /^\s+/; 
var str = ' goo gle ';
alert(str+" "+str.length);
var result = str.replace(pattern, '');
alert(result+" "+result.length);
pattern = /\s+$/; 
result = result.replace(pattern, '');
alert(result+" "+result.length);
pattern = /\s+/g; 
result = result.replace(pattern, '');
alert(result+" "+result.length);
5、简单的电子邮件验证
var pattern = /^([a-zA-Z0-9_\.\-]+)@([a-zA-Z0-9_\.\-]+)\.([a-zA-Z]{2,4})$/;
var str = 'yc60.com@gmail.com';
alert(pattern.test(str));
var pattern = /^([\w\.\-]+)@([\w\.\-]+)\.([\w]{2,4})$/;
var str = 'yc60.com@gmail.com';
alert(pattern.test(str));

二、创制正则表明式==(1二叁)==

在只想知道对象字符串与有个别格局是还是不是合作,但没有供给通晓其文件内容的状态下,使用这么些格局充裕有利。因而,
test() 方法经常被用在 if 语句中。

6、常用正则表示==(12捌)==

四、删除空格

var pattern = /[\w]+\.zip|rar|gz/; //\w 表示所有数字和字母加下划线
var str = '123.zip'; //\.表示匹配.,后面是一个选择
alert(pattern.test(str));

譬喻:上边包车型地铁例子能够这么写 var pa = /girl/gi;

1、检查邮编

<script type="text/javascript">
 var pa = /girl/gi;
 var testStr = "myGirl, yourgirl, hisgIrl";
 var girls = pa.exec(testStr); //捕获
 alert(girls.length + ":" + (girls instanceof Array)); //正则表达式没有捕获组,所以数组长度为1
 alert(girls[0]); //第一次捕获的是 Girl
  //因为我们是用的全局匹配,所以此次匹配的时候从上次匹后的位置开始继续匹配
 alert(pa.exec(testStr)[0]);  // girl
 alert(pa.exec(testStr)); // gIrl
 alert(pa.exec(testStr)); //继续向后没有匹配的字符串,所以返回null
  // 返回null,如果继续再匹配,则会回到字符串的开始,重写开始匹配。
 alert(pa.exec(testStr)); // Girl
  // ...开启新一轮匹配
</script>

5、正则表明式规则==(1二4)==


正则表达式用于对字符串情势相配及搜索替换,是对字符串实施格局相配的精锐工具。

<script type="text/javascript">
  //()内的内容就是第1组(Girl),其实我们完整真个表达式可以看出第0组 girl(Girl)
  // 将来对应着匹配结果数组的下标。 
 var pa = /girl(Girl)/gi; 
 var test = "girlGirl abdfjla Girlgirl fal girl";
 var girls;
 while(girls = pa.exec(test)){
  //匹配之后,数组的第0个元素对应的这第0组的匹配结果,第1个元素对应着第1组的匹配结果
  for (var i = 0; i < girls.length; i++) {
   console.log(girls[i]);
  }
  console.log("-------------");
 }
</script>
//最终运行结果:
girlGirl
Girl
-------------
Girlgirl
girl
------------

1.一 什么是正则表明式

  1. g:表示全局。意思是说会对3个字符串举办频仍男才女貌。假若不写g则只非常一回,壹旦相配成功,则不会再次相配
  2. i:表示忽略大小写。意思是说在协作的时候不区分轻重缓急写
  3. u:表示能够多行相称。

test(字符串)

方法 描述
search 检索与正则表达式相匹配的第一个匹配项的索引。
match 找到一个或多个正则表达式的匹配。
replace 替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。

正则表明式元字符是含有特殊意义的字符。它们有部分特有功效,能够垄断万分形式的

4.2 exec()方法

<script type="text/javascript">
 var pa = /girl/gi;
 var testStr = "myGirl, yourgirl, hisgIrl";
 var girls;
 while(girls = pa.exec(testStr)){ //如果等于null,会自动转成 false,结束。
  alert(girls);
 }
</script>

字符类:单个字符和数字

4.1 test()方法

3、删除多余空格

3、正则表明式方式修饰符==(12陆)==

var pattern = /\s/g; //g 必须全局,才能全部匹配
var reg=new RegExp('\\s+','g');
var str = '111 222 333';
var result = str.replace(pattern,''); //把空格匹配成无空格
alert(result);
var pattern = /[1-9][0-9]{5}/; //共6位数字,第一位不能为0
var str = '224000';
alert(pattern.test(str));

以上所述是作者给大家介绍的JS基础体系之正则表达式,希望对大家有着扶助,倘若大家有别的疑问请给本身留言,作者会及时复苏我们的。在此也极度多谢大家对台本之家网址的帮助!

参数二:形式修饰符。用于钦定全局匹配、区分轻重缓急写的相配和多行相称

留意:今年情势和格局修饰符都能再加多双引号或单引号

字符类:锚字符

元字符/元符号                    相配意况
^                             行首郎才女貌
$                             行尾相称

7、协理正则表明式的字符串方法

措施。反斜杠后的元字符将失去其独专门义。

表明式规则

exec(字符串):该格局为极度为捕获组而设计的

var patt = new RegExp(pattern,modifiers);


用户填写完表单单击按键之后,表单就能够被发送到服务器,在服务器端经常会用PHP、ASP.NET、JSP等服务器脚本对其开始展览更为管理。因为客户端验证,能够节省大批量的服务器端的系统能源,并且提供越来越好的用户体验。

var pa = /pattern/modifiers;

2.2 方式贰:使用正则表明式间接量

八个/中间的象征正则表达式的形式,最后三个/的前边是形式修饰符

分组。在正则表明式中用()括起来职分是壹组。组可以嵌套。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图