正则表达式(Regular Expression)

正则表达式,又称规则表达式。(英语: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()
-将一个字符拆分为数组
-方法中可以传递一个正则表达式作为参数

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

search()
-搜索是否含有指定内容
- 搜索到指定内容,则会返回第一次出现的索引,没有搜到则返回-1
serch()只会查到第一个,即使设置全局匹配也没用

str = "hello hi abc aec afc";
result = str.search(/a[bef]c/);

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

str = "1a2b3c4d5A6B";
result = str.match(/[A-z]/ig);

replace()
-可以将字符串中指定内容替换为新的内容
-参数
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));

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

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,"");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章