在JavaScript上使用RegEx在多个圆括号中搜索唯一值
Searching for a unique value across multiple parenthesis with RegEx on JavaScript?
示例
var value = "foo bar (foo(bar)(foo(bar)))";
你想要的价值是
(foo(bar)(foo(bar)))
而不是
(foo(bar)
正如elclarns所指出的,JS没有递归正则表达式,但正则表达式不是唯一的工具,括号计数器应该可以工作,好的
var x = "foo bar (foo(bar)(foo(bar))) foo bar";
var result = "";
var cnt = 0;
var record = false;
for(var i=0; i<x.length; ++i) {
var ch = x.charAt(i);
if(ch=="(") { ++cnt; record = true; }
if(ch==")") --cnt;
if(record) result+= ch;
if(record && !cnt) break;
}
if(cnt>0) record = ""; // parenthesis not enclosed
console.log(result); // (foo(bar)(foo(bar)))
当然,这只捕获第一个括号,但您可以将它们全部记录在数组中,并选择最长的结果。这应该很容易。
这应该可以工作。
var re = /'(.*')/
var result = re.exec(value) //["(foo(bar)"]
然后它将捕获括号之间最大的字符串。
相关文章:
- 用程序搜索JQuery数据表中的文本
- 在html Select中添加搜索
- Ajax Live搜索发布到Laravel视图
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- 学生搜索项目jquery/javascript
- 用于搜索的聚合物嵌套绑定
- 在javascript中搜索具有重复值的两个数组中的匹配值
- Angularjs-utils高亮过滤器在搜索时破坏应用程序
- 使用javascript搜索具有用户输入的数组
- 淘汰搜索/筛选
- 搜索api在mac上显示对话框
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- 谷歌水印未显示在自定义搜索框中
- 在javascript中搜索项目列表的性能
- 正在搜索JavaScript日期选择器滑块
- JQuery中的活动搜索栏
- 如何在剑道下拉列表中按文本和值搜索
- 谷歌CSE-搜索参数
- 包含圆括号的JavaScript Regex模式
- 在JavaScript上使用RegEx在多个圆括号中搜索唯一值