正则表达式基础版使用

81 阅读2分钟

我正在参加「掘金·启航计划」

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 许多程序设计语言都支持利用正则表达式进行字符串操作

创建正则表达式的对象

使用构造函数创建正则表达式

语法:

var 变量 = new RegExp(“正则表达式”,“匹配模式”); 在构造函数中可以传递一个匹配模式作为第二个参数

i 忽略大小写

g 全局匹配模式

使用字面量来创建正则表达式 语法: var 变量 = /正则表达式/匹配模式 字面量创建简单但是函数构造创建更灵活

/*
    []里的内容也是或的关系
    [ab] == a|b
    [a-z] 任意小写字母
    [A-z] 任意大写字母
*/
reg = /a/i;
reg = /[A-z]/

//检查一个字符串中是否含有abc或adc或afc
reg = /a[bdf]c/

//[^ ]除了
console.log(reg.test("asckhljliu "));

字符串和正则表达式相关的方法

split()

  1. 将一个字符拆分为数组

  2. 方法中可以传递一个正则表达式作为参数

var result = str.split(/[A-z]/);

search()

  1. 搜索是否含有指定内容
  2. 搜索到指定内容,则会返回第一次出现的索引,没有搜到则返回-1 serch()只会查到第一个,即使设置全局匹配也没用
jsstr = "hello hi abc aec afc";
result = str.search(/a[bef]c/);

match()

  1. 根据正则表达式,从一个字符串中将符合条件的内容提取出来
  2. 默认情况下match只会找到第一行符合要求的内容,找到以后就停止搜索
  3. 可以设置正则表达式为全局匹配模式 -match()会将匹配到的内容封装到一个数组中返回
str = "1a2b3c4d5A6B";
result = str.match(/[A-z]/ig);

replace()

  1. 可以将字符串中指定内容替换为新的内容

-参数

1.被替换的内容可以接收一个正则表达式作为参数

2.新的内容

result = str.replace(/a/ig,"!");

量词

通过量词可以设置一个内容出现的次数 量词只对它前边的内容起作用 {n} 正好出现n次 {m,n} 出现m-n次

  • 至少一个,相当于{1,}
  • 0个或多个,相当于{0,1} ? 0个或一个,相当于{0,1};

^ 表示开头

$ 表示结尾

reg = /^a/;//匹配开头的a
reg = /a$/;//匹配结尾的a

如果在正则表达式中同时使用^ $则要求字符串必须完全符合正则表达式

reg = /^a$/;
console.log(reg.test("a"));

创建一个正则表达式,判断手机号是否合法

var phone = "13931338404";
var phoneReg = /^1[3-9][0-9]{9}$/;
console.log(phoneReg.test(phone));
1

检查一个字符串中是否含有 . 在正则表达式中使用\作为转义字符

.来表示.

\ 表示\

var reg = /\./;
console.log(reg.test("b."));

\w

  • 任意字母,数字,_ [A-z0-9_] \W
  • 除了字母,数字,_ \d
  • 任意的数字[0-9] \D
  • 除了数字[^0-9] \s
  • 空格 \S
  • 除了空格 \b
  • 单词边界 \B
  • 除了单词边界

创建一个正则表达式检查一个字符串中是否含有单词child

reg = /\bchild\b/;
console.log(reg.test("children"));

去掉开头的空格

str = str.replace(/^\s*/,"");

去掉结尾的空格

str = str.replace(/\s*$/,"");

去掉开头和结尾的空格

str = str.replace(/^\s*|\s*$/g,"");