资讯专栏INFORMATION COLUMN

JS语言核心——“正则表达式的模式匹配”

李世赞 / 925人阅读

摘要:正则表达式一个描述字符模式的对象正则表达式的定义构造函数正则表达式直接量一对斜杠新特性正则的扩展引用类型类型的注意要点用于模式匹配的方法不支持全局搜索忽略表达式参数中的修饰符两个参数第一个是正则表达式,第二个是要替换的字符串接收一个正则表达

正则表达式(regular expression):一个描述字符模式的对象

1 正则表达式的定义

RegExp()构造函数

正则表达式直接量(一对斜杠//

var patern0 = //;
var patern1 = new RegExp();

ECMAScript6 新特性——“正则的扩展”

JavaScript引用类型——“RegExp类型”的注意要点

2 用于模式匹配的String方法

search()

不支持全局搜索(忽略表达式参数中的修饰符g)

var str = "JavaScript notebook";
console.log(str.search(/script/i)); //4

replace()

两个参数(第一个是正则表达式,第二个是要替换的字符串)

var str = "javascript notebook";
console.log(str.replace(/javascript/g, "JavaScript")); //JavaScript notebook 

var str = "javascript notebook";
console.log(str.replace(/j(ava)script/, "J$1")); //Java notebook 

match()

接收一个正则表达式,返回的是一个由匹配结果组成的数组

var str = "javascript notebook";
console.log(str.match(/S+/g).join("&")); //javascript¬ebook 

var str = "http://www.example.com/ajax.html";
var a = str.match(/(w+)://([w.]+)/(S*)/);
console.log(a[0]);
console.log(a[1]);
console.log(a[2]);
console.log(a[3]);
//http://www.example.com/ajax.html 
//http 
//www.example.com 
//ajax.html 

split()

将调用它的字符串拆分为一个子串组成的数组,使用的分隔符是该方法的参数:

var str = "http://www.example.com/ajax.html";
var a = str.split("/");
a.map(function (item, index, array) {
    console.log(item, index);
});
//http: 0 
// 1 
//www.example.com 2 
//ajax.html 3 

方法的参数也可以是正则表达式:

var str = "http://www.example.com/ajax.html";
var a = str.split(/[.:/]/);
console.log(a.toString());
a.forEach(function (item) {
    if (item) {
        console.log(item);
    }
});
//http,,,www,example,com,ajax,html 
//http 
//www 
//example 
//com 
//ajax 
//html 
3 RegExp对象

如果待检索的字符串是由用于输入的,就必须使用构造函数,在程序运行时创建正则表达式

3.1 RegExp属性

source;

global;

ignoreCase;

multiline;

lastIndex;

3.2 RegExp方法

exec()

var str = "javascript in java or script";
var patern = /javaw*/g;
var a1 = patern.exec(str);
console.log(a1.toString());
console.log(patern.lastIndex); //lastIndex为10
var a2 = patern.exec(str);
console.log(a2.toString());
console.log(patern.lastIndex); //lastIndex为18
//javascript 
//10 
//java 
//18 

test()

var str = "javascript in java or script";
var patern = /javaw*/g;
var a = patern.test(str);
console.log(a); //True

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79128.html

相关文章

  • js正则表达式模式匹配

    摘要:一正则表达式的定义正则表达式是一个描述字符模式的对象对象更多的是通过一种特殊的直接量语法来创建正则表达式的模式规则是由一个字符序列组成的包括所有字母和数字在内大多数的字符都是按照直接量仅描述待匹配字符的二直接量字符正则表达式中的所有字母和数 一.正则表达式的定义 1.正则表达式(regular expression)是一个描述字符模式的对象.2.RegExp对象更多的是通过一种特殊的直...

    Kerr1Gan 评论0 收藏0
  • JavaScript 中正则表达式

    摘要:正则表达式的意义中的正则表达式使用表示,可以使用构造函数来创建对象,不过对象更多的是通过一种特殊的直接量语法来创建。用构造函数也可以定义一个与之等价的正则表达式,代码如下正则表达式的模式规则是由一个字符序列组成的。 正则表达式的模式匹配 正则表达式(regular expression)是一个描述字符模式的对象。javascript的RegExp对象表示正则表达式,String和Reg...

    _Dreams 评论0 收藏0
  • 搞懂nginxrewrite模块

    摘要:非标准码关闭连接而不发送响应报头。指令按照它们在配置文件中出现的顺序执行。可以使用标志来终止指令的进一步处理。返回永久重定向。发送如下请求控制是否记录有关未初始化变量的警告。 之前在配置nginx时,总是遇到rewrite指令的last和break标识的问题,看到的资料大都是last 基本上都用这个 Flag,break 中止 Rewirte,不在继续匹配。看完之后还是有点懵,后来看了...

    wangshijun 评论0 收藏0
  • Nginx 学习总结(4)—— Rewrite 模块

    摘要:根据官方文档说明,模块是用于使用正则表达式更改请求,有条件地选择配置,并返回重定向。指令停止执行模块的指令集,但是其他模块指令不受影响。可以使用标志来终止指令的进一步处理。 这是 Nginx 学习总结的第四篇,上一篇介绍到了 Nginx 学习总结(3) —— Location 模块,这一篇会对Rewrite模块 做一些总结。根据官方文档说明,Rewrite 模块是用于使用 PCRE 正...

    zhjx922 评论0 收藏0

发表评论

0条评论

李世赞

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<