十、JavaScript中的正则表达式(六)

举报
毛利 发表于 2021/07/15 05:38:23 2021/07/15
【摘要】 @Author:Runsen @Date:2020/5/26 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件。导致翘课严重,专业排名中下。.在大学60%的时间,都在CSDN。决定今天比昨天要更加努力。 今天,我要继续补充JavaScript,就把JavaScript中的正则表达式灭了算了。在Pyt...

@Author:Runsen
@Date:2020/5/26

作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件。导致翘课严重,专业排名中下。.在大学60%的时间,都在CSDN。决定今天比昨天要更加努力。

今天,我要继续补充JavaScript,就把JavaScript中的正则表达式灭了算了。在Python中,正则表达式就是re模块。在JavaScript,怎么搞?

不会,先去菜鸟教程看看咯i

我先说明下,在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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。