美文网首页
第六章 正则表达式

第六章 正则表达式

作者: 尺间天涯 | 来源:发表于2019-02-01 15:52 被阅读0次

RegExp对象

正则表达式用于对字符串模式匹配、检索、替换,是对字符串执行模式匹配的强大工具。

反斜杠是转意符,\s的意思就是空白字符

let str = 'It\'s a nice day today';
console.log(str.split(' '));
//  ["It's", "a", "nice", "day", "today"]
console.log(str.split(/\s/));
//  ["It's", "a", "nice", "day", "today"]

语法:

var reg = /pattern/modifiers;

  • pattern(模式)描述表达式的模式
  • modifiers(修饰符)指定全局匹配(g)、不区分大小写(i)、多航匹配(m)

量词

量词 描述
n+ 至少包含一个n 贪婪模式
n* 包含0个或多个n 贪婪模式
n? 包含0个,一个 非贪婪模式
n{X} 包含X个n
n{X,Y} 包含至少X个N,最多Y个N
n$ 任何n结尾
^n n
?=n 匹配任何其后紧接n的字符串
?!n 匹配任何其后不紧接n的字符串

方括号

表达式 描述
[abc] 查找方括号之间的任何字符
[^abc] 查找任何不在方括号之间的字符
[0-9] 查找任何从0-9的数字
[a-z] 查找任何从a到z的字符
[A-Z] 查找任何A-Z的字符

元字符

元字符(Metacharacter)是拥有特殊含义的字符:

元字符 描述
. 查找单个字符,除了换行和行结束符。
\w 查找单词字符。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NULL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

RegExp 对象方法

方法 描述
exec 检索字符串中指定的值。返回找到的值,并确定其位置。
test 检索字符串中指定的值。返回 true 或 false。
toString 返回正则表达式的字符串。

支持正则表达式的 String 对象的方法

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

贪婪模式和非贪婪模式

举例:

let reg1 = /a.*c/;
let reg2 = /a.?c/;
let str = 'hiabcaxc';
console.log(reg1.exec(str));
// ["abcaxc", index: 2, input: "hiabcaxc", groups: undefined]
// 贪婪模式可以理解为最大长度匹配
console.log(reg2.exec(str));
// ["abc", index: 2, input: "hiabcaxc", groups: undefined]
// 非贪婪模式正好相反,最小长度匹配

栗子:

// 检测身份证有效
let reg = /^((1[3-9]\d{9})|(0\d{2,3}-\d{7,8}))$/;
function phoneNum(num) {
    return reg.test(num);
}
console.log(phoneNum('010-12345678')); //true
console.log(phoneNum(13877778888)); //true
// 检测文件格式
let reg = /^\w+.(zip|rar|gz)$/;
function fileType(file) {
    if (reg.test(file)) {
        return reg.exec(file)[0];
    } else {
        return '文件格式不符合要求';
    }
}
console.log(fileType('2019.zip'));
// 2019.zip
console.log(fileType('HappyNewYear.rar'));
// HappyNewYear.rar.rar
console.log(fileType('haha.7z'));
// 文件格式不符合要求

相关文章

  • 《岳响河》目录 第六章

    第六章1 第六章2 第六章3 第六章4 第六章5 第六章6 第六章7 第六章8 第六章9 第六章10 第六章11 ...

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 第六章 正则表达式的构建

    第六章 正则表达式的构建 对于一门语言的掌握程度怎么样,可以有两个角度来衡量:读和写。 不仅要看懂别人的解决方案,...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

网友评论

      本文标题:第六章 正则表达式

      本文链接:https://www.haomeiwen.com/subject/tpsdsqtx.html