javascript中正则表达式和ruby中的一点差异

简介:

看到一个例子,不过这个例子中正则表达式的格式貌似是错的:

Function.prototype.get_name = function(){
    return this.name || this.toString().match(/function\s*(\[^()*](/)[1];
}

代码的原意是给任意有名的Function实例对象添加返回其名称的方法get_name;不过其中正则的格式不怎么对,简单思考了一下很快用ruby语法写出了:

s = "function foo(x){...}"
s.match(/function\s*(.*)\(/)[1] #返回"foo"

不过同样的正则格式在js中取得不对,貌似是贪婪的获取啊!?那么直接在*后面加?号吧:

foo.toString().match(/function\s*(.*?)\(/)

总结一下,js中正则默认是贪婪模式,而ruby中则比较“谨慎”,这就是正则引擎的不同吗? :)

相关文章
|
6天前
|
JavaScript 前端开发
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
|
3天前
|
前端开发 JavaScript
前端 js 经典:正则表达式
前端 js 经典:正则表达式
11 2
|
4天前
|
JavaScript 前端开发 测试技术
学会JavaScript正则表达式(二)
学会JavaScript正则表达式(二)
|
4天前
|
机器学习/深度学习 JavaScript 前端开发
学会JavaScript正则表达式(一)
学会JavaScript正则表达式(一)
|
6天前
|
XML JavaScript 前端开发
【JavaScript | RegExp】正则表达式
【JavaScript | RegExp】正则表达式
13 4
|
6天前
|
JavaScript 前端开发
JavaScript中的短路表达式
JavaScript中的短路表达式
11 1
|
6天前
|
JavaScript 前端开发 开发者
解密 JavaScript 中的三元运算符:简洁而强大的条件表达式
解密 JavaScript 中的三元运算符:简洁而强大的条件表达式
18 0
|
6天前
|
JavaScript 索引
记录_js正则表达式
记录_js正则表达式
6 0
|
6天前
|
JavaScript 前端开发 索引
JavaScript中的正则表达式:使用与模式匹配
【4月更文挑战第22天】本文介绍了JavaScript中的正则表达式及其模式匹配,包括字面量和构造函数定义方式,以及`test()`、`match()`、`search()`和`replace()`等匹配方法。正则表达式由元字符(如`.`、`*`、`[]`)和标志(如`g`、`i`)组成,用于定义搜索模式。文中还分享了正则使用的技巧,如模式分解、非捕获分组和注释。掌握正则表达式能提升文本处理的效率和代码质量。
|
6天前
|
JavaScript 前端开发 开发者
ChatGPT 回答一道 JavaScript 正则表达式的题目
ChatGPT 回答一道 JavaScript 正则表达式的题目
9 0