Javascript 搜索字符串中括号之间的内容

Javascript 搜索字符串中括号之间的内容,javascript,arrays,string,split,indexof,Javascript,Arrays,String,Split,Indexof,我只想在()中查找文本,但indexOf返回完整的键值 var str = "some textsome textsome text(texttext)some text" var arrSplit = str.split(' ') for(var i = 0; i < arrSplit.length; i++){ if(arrSplit[i].indexOf('(') >= 0) { console.log(arrSplit[i]) } } var

我只想在()中查找文本,但indexOf返回完整的键值

var str = "some textsome textsome text(texttext)some text"
var arrSplit = str.split(' ')
for(var i = 0; i < arrSplit.length; i++){
    if(arrSplit[i].indexOf('(') >= 0) {
        console.log(arrSplit[i])
    }
}
var str=“一些文本一些文本(文本)一些文本”
var arrspilt=str.split(“”)
对于(变量i=0;i=0){
console.log(arrspit[i])
}
}
结果

text(text)一些

我需要

(文本)


要仅使用
split()
执行此操作(前提是字符串中只有一个这样的模式):

…并使用正则表达式:

str.match(/\([a-z]*\)/ig)        // returns array containing all matches

要仅使用
split()
执行此操作(前提是字符串中只有一个这样的模式):

…并使用正则表达式:

str.match(/\([a-z]*\)/ig)        // returns array containing all matches
试试看:

根据需要匹配的内容,您可以在
[]
中添加更多的部分。例如,如果要包含数字,请使用
0-9
。只需避免使用
*
,因为这会将类似
(测试)nope!(测试)
的内容作为一个块进行匹配

从本质上讲,这个正则表达式的要点是希望所有的大写/小写字母都位于括号之间。括号必须转义(因此
\(
而不是
),因为括号表示正则表达式中的分组。

请尝试:

根据需要匹配的内容,您可以在
[]
中添加更多的部分。例如,如果要包含数字,请使用
0-9
。只需避免使用
*
,因为这会将类似
(测试)nope!(测试)
的内容作为一个块进行匹配

从本质上讲,这个正则表达式的要点是,您需要在括号之间包含所有大写/小写字母。必须对括号进行转义(因此
\(
而不是
),因为括号表示正则表达式中的分组。

只需尝试
\(.?\)
正则表达式

var str=“一些文本一些文本(文本)一些文本”
str=str.match(/\(.*?\)/);
log(str[0]);
只需尝试
\(.*?\)
RegEx

var str=“一些文本一些文本(文本)一些文本”
str=str.match(/\(.*?\)/);

console.log(str[0]);
您的代码在空格上拆分,括号周围没有空格。@Pointy是的,我尝试了另一种方法,但这几乎是我需要的,只需要现代化一点:)…或使用正则表达式:
var result=str.match(/\(.?)/g);
其中
result
是所有匹配项的数组(或
null
如果没有匹配项)。@ibrahimmahrir是的,这就是答案。谢谢!您的代码在空格上拆分,括号周围没有空格。@Pointy是的,我尝试了其他方法,但这几乎是我需要的,只需要现代化一点:)…或使用正则表达式:
var result=str.match(/\(.?\)/g);
其中
result
是所有匹配项的数组(如果没有匹配项,则为
null
)@ibrahimmahrir是的,这就是答案。谢谢!你的密码是正确的,但他只发现了一个巧合。对不起,我忘了提到很多coincidence@Tard使用第二个,然后你的代码是正确的,但他只发现了一个巧合。对不起,我忘了提到很多coincidence@Tard那就用第二个吧
str.match(/\([A-Za-z]*\)/g); // will match all occurrences