我只想在()内查找文本,但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])
    }
}


结果


  文字(texttext)一些


我需要


  (文字文字)

最佳答案

尝试regex

str.match(/\([A-Za-z]*\)/g); // will match all occurrences


您可以根据需要匹配的内容在[]中添加更多零件。例如,如果要包括数字,请输入0-9。只需避免使用.*即可,因为这会将"(test) nope! (test)"之类的内容作为一个块进行匹配。

本质上,此正则表达式的要旨是您希望括号之间的所有大写/小写字母都正确。因为括号表示正则表达式中的分组,所以必须对括号进行转义(因此用\(代替()。

10-06 01:29