微信扫一扫打赏支持

js课程 4-12 js中正则表达式如何使用

js课程 4-12 js中正则表达式如何使用

一、总结

一句话总结:

 

1、js正则表达式手册取哪里找?

w3cschool或者菜鸟教程->找到js正则表达式->完整的RegExp参考手册
这手册上面的资料并不是特别全,比如向后引用就没有

 

2、js中支持正则表达式的String对象的方法有几个?

只有四个,只有四个

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

 

3、正则修饰符中的m有什么用?

执行多行匹配,也就是把一行里面带\n的看做多行,用于比如取每行的行首这样的操作。

26 str='linux and php and 2 and 3 and 20 and linkx and\nlinox and linax and LINUX and Php and paaaaaaaaaaap and pbp is andp2p and\nlinxx is lamp and p3p';
27 
28 arr=str.match(/^lin.x/igm);
29 
30 alert(arr);

 

4、正则总共有哪三类东西?

a、元字符
b、量词
c、修饰符

 

5、\b单词边界是什么意思?

单词边界一般是空格换行,加了单词边界就能匹配到哪些单词

 

6、匹配中文字符用什么?

\u***到\u***

\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

 

7、.*和.*?的区别是什么,php中什么修饰符实现这样加?的功能?

.* 匹配很多
.*? 精确匹配
php中可以用?号,也可以用修饰符u

 

8、js中正则中的向后引用怎么使用?

正则表达式加圆括号分组,后面用$加数字取分组

 

 

二、js中正则表达式如何使用

1、相关知识

正则表达式:
1.修饰词
i 忽略大小写
g 全部匹配
m 把\n识别为多行

2.中括号
[abc] 中括号中的任意一个字符
[^abc] 除了中括号中的任意一个字符
(linux)|(php) 1.linux或php单词 2.可实现向后引用$1(replace替换时)

3.元字符
.  任意一个字符
\w 任意一个字母、数字或下划线
\W 任意一个非字线、数字和下划线
\d 任意一个数字
\D 任意一个非数字
\s 任意一个空格
\S 任意一个非空格
\b 单词边界
\B 非单词边界
\n 代表换行符

4.量词
+ 1个或多个
* 任意多个
? 1个或0个
{3} 3个
{3,5} 3个到5个
{3,} 3个以上
^ 行首
$ 行末
?=a 后面紧挨a的
?!a 后面不紧挨a的

4.js中使用正则的字符串对象的方法
search();
match();
replace();
split();

5.正则实例
1)匹配以139开头的电话号码
2)匹配邮箱格式
3)高级替换功能

 

 

2、代码

m可以把反斜线n识别为多行

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>index</title>
 6     <style>
 7         *{
 8             font-family: 微软雅黑;
 9         }
10         .hcls{
11             background: #ccc;    
12         }
13 
14         .hcls:hover,h2:hover{
15             background: #999;
16         }
17 
18     </style>
19 </head>
20 <body>
21     <h1>aaaaaaaaaaaaaaaaaa</h1>    
22 </body>
23 <script>
24 //正则表达式
25 
26 str='linux and php and 2 and 3 and 20 and linkx and\nlinox and linax and LINUX and Php and paaaaaaaaaaap and pbp is andp2p and\nlinxx is lamp and p3p';
27 
28 arr=str.match(/^lin.x/igm);
29 
30 alert(arr);
31 </script>
32 </html>

 

$向后引用实现高级替换

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>index</title>
 6     <style>
 7         *{
 8             font-family: 微软雅黑;
 9         }
10         .hcls{
11             background: #ccc;    
12         }
13 
14         .hcls:hover,h2:hover{
15             background: #999;
16         }
17 
18     </style>
19 </head>
20 <body>
21     <h1>aaaaaaaaaaaaaaaaaa</h1>    
22 </body>
23 <script>
24 //正则表达式
25 
26 date='2016/05/11';
27 //2016-05-11
28 
29 time=date.replace(/(\d+)\/(\d+)\/(\d+)/g,'$1-$2-$3');
30 
31 alert(time);
32 </script>
33 </html>

 

 

 

 

 
posted @ 2018-07-11 11:48  范仁义  阅读(721)  评论(0编辑  收藏  举报