使用reg-exp拆分链函数的字符串
split string of chain functions with reg-exp
我环顾StackOverflow,但找不到答案!
无论如何,我想知道如何使用正则表达式在JavaScript中获得以下内容。
我有一个字符串
bla().func1($(ele).attr("data")).func2.func3("test")... ;
我想从给定的字符串中提取func1、func2、func3…,有人举过这样做的例子吗?
请记住,函数名称会更改,因此它们不是func1、func2。。。它们可以是负载,过去,月亮。。。任何
试试这个:
var str = 'bla().func1($(ele).attr("data")).func2("test")';
alert(str.split(/(?:'.)'w+'d+(?='()/g));
小提琴:http://jsfiddle.net/cv6avhfb/3/
此代码会将字符串拆分为多个部分,同时使用诸如'.func1(','.func2(','.abc3('和other之类的子字符串作为分隔符。如果函数名的结构不同,则只需更改正则表达式的'w+'d+
部分即可。
这是这个代码的结果:
bla(),($(ele).attr("data")),("test")
如果您想了解更多关于javascript中regex的信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
反复去掉最里面的括号表达式:
var str = 'bla().func1($(ele).attr("data")).func2.func3("test")... ';
var expression = /'([^(]*?')/g;
while (expression.test(str)) { str = str.replace(expression, ''); }
document.write(str.split('.').slice(1).join(' '));
但是,你不应该这样做(你为什么要这样做?)。JS应该由JS解析器解析。例如,如果有一个包含括号的字符串文字,那么上面的操作就会失败。您应该使用Esprima对此进行解析,并分析生成的解析树。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- JavaScript按钮/输入/函数,字符串反转
- 推荐在JavaScript中执行存储为字符串的函数,而不是使用eval
- 编辑输出字符串函数ol.control.MouseControl
- 如何在 Javascript 和 qUnit 中模拟字符串函数
- 如何在for()语句中执行字符串函数
- GulpJS:对SVG文件内容执行字符串函数
- 在干净的字符串函数之间添加空格
- 错误将导致最长重复子字符串函数
- Javascript:替换在IE7-8中不工作的字符串函数
- 如何使用拆分字符串函数的结果在Angular.js中进行排序
- 反转不工作的字符串函数
- 在Python中,你可以像在JavaScript中那样创建字符串函数的原型
- 我如何使用简单的子字符串函数在javascript标题大小写句子
- Javascript字符串函数
- 来自字符串函数的图像
- 有没有任何方法可以在不使用javascript子字符串函数或regex的情况下生成这个字符串日期表示(带时区)
- 在从CFC返回结果之前,对AJAX查询执行字符串函数
- 不能调用下划线.字符串函数' lpad '用于错误'未捕获的类型错误:_.Lpad不是一个函数