十、JavaScript中的正则表达式(六)
@Author:Runsen
@Date:2020/5/26
作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件。导致翘课严重,专业排名中下。.在大学60%的时间,都在CSDN。决定今天比昨天要更加努力。
今天,我要继续补充JavaScript,就把JavaScript中的正则表达式灭了算了。在Python中,正则表达式就是re模块。在JavaScript,怎么搞?
我先说明下,在JavaScript中不用导入什么东西。
基础用法
/正则表达式主体/修饰符(可选)
- 1
比如/w3school/i
是一个正则表达式。
w3school
是模式(pattern)(在搜索中使用)。
i
是修饰符(把搜索修改为大小写不敏感)。
有点抄W3C的,我还是改为/runsen/i
这样,字符串就有search()方法了,search() 方法使用表达式来搜索匹配,然后返回匹配的位置。
var str = "Hello Runsen";
var n = str.search(/runsen/i );
- 1
- 2
这也是最常见的用法,还有一个replace() 的方法。用正则表达式来匹配对应的字符串,你看下面的例子Runsen变成Maoli
var str = "Hello Runsen";
var n = str.replace(/runsen/i,"Maoli");
- 1
- 2
构造函数创建正则表达式的对象
语法:
var 变量 = new RegExp("正则表达式"); // 注意,参数是字符串
var 变量 = new RegExp("正则表达式", "匹配模式"); // 注意,两个参数都是字符串
- 1
- 2
备注:RegExp
的意思是 Regular expression。使用typeof检查正则对象,会返回object。
上面的语法中,既可以传一个参数,也可以传两个参数。
创建了正则表达式的对象后,该怎么使用呢?大致分为两个步骤:
-
(1)创建正则表达式的对象 reg。
-
(2)使用 reg 的test() 方法,判断指定字符串是否符合规则。
正则表达式的test()
方法
myReg.test(str); // 判断字符串 str 是否符合 指定的 myReg 这个正则表达式的规则
- 1
解释:使用test()
这个方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合则返回true,否则返回false。
下面来看看下面的例子。
1、传一个参数时:
构造函数 RegExp 中,可以只传一个参数。
代码举例:
var reg = new RegExp("a"); // 定义一个正则表达式:检查一个字符串中是否含有 a
var str1 = "Maoli";
var str2 = "Runsen";
// 通过 test()方法,判断字符串是否符合 上面定义的 reg 规则
console.log(reg.test(str1)); // 打印结果:true
console.log(reg.test(str2)); // 打印结果:false
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
注意,上面的例子中,我们是先定义了一个正则表达式的规则,然后通过正则表达式的test()
方法来判断字符串是否符合之前定义的规则。
2、传两个参数时
我们可以传递一个匹配模式作为第二个参数。这个参数可以是:
-
i
忽略大小写。这里的 i 指的是 ignore。 -
g
全局匹配模式。这里的 g 指的是 global。
代码举例:
var reg = new RegExp('A', 'i');
var str = 'Maoli';
console.log(reg.test(str)); // 打印结果:true
- 1
- 2
- 3
- 4
或关系
检查一个字符串中是否包含 a或b
写法1:
var reg = /a|b/;
- 1
解释:使用 |
表示或
的意思。
写法2:
var reg = /[ab]/; // 跟上面的那行语法,是等价的
- 1
解释:这里的[]
也是表示或
的意思。
[]
这个符号在正则还是比较常用的。
[]表示:或
其他规则
一些其他规则:
-
/[ab]/
等价于/a|b/
:检查一个字符串中是否包含 a或b -
/[a-z]/
:检查一个字符串那种是否包含任意小写字母 -
/[A-Z]/
:任意大写字母 -
/[A-z]/
:任意字母 -
/[0-9]/
:任意数字 -
/a[bde]c/
:检查一个字符串中是否包含 abc 或 adc 或 aec
举例
检查一个字符串是否是一个合法手机号
手机号的规则:
-
以1开头
-
第二位是3~9之间任意数字
-
三位以后任意9位数字
正则实现:
var phoneStr = "13067890123"; var phoneReg = /^1[3-9][0-9]{9}$/; console.log(phoneReg.test(phoneStr));
- 1
- 2
- 3
去掉字符串开头和结尾的空格
str = str.replace(/^\s*|\s*$/g,"");
- 1
常用正则表达式(熟记)
用户名 | /^[a-zA-Z_][a-zA-Z_\-0-9]{6,10}$/ |
---|---|
密码 | /^[a-zA-Z0-9_\-\@\#\&\*]{6,12}$/ |
前后空格 | /^\s+|\s+$/g |
电子邮箱 | /^[a-zA-Z0-9_\.-]+@([a-zA-Z0-9-]+[\.]{1})+[a-zA-Z]+$/ |
手机号 | /^1[3-9][0-9]{9}$/ |
更多的看菜鸟教程正则表达式
文章来源: maoli.blog.csdn.net,作者:刘润森!,版权归原作者所有,如需转载,请联系作者。
原文链接:maoli.blog.csdn.net/article/details/106358678
- 点赞
- 收藏
- 关注作者
评论(0)