[英]Search for content between parenthesis in a string
我只想在()內查找文本,但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)一些
我需要
(文字文字)
僅使用split()
可以做到這一點(假設字符串中只有一個這樣的模式):
str.split('(')[1].split(')')[0]
..並使用RegEx:
str.match(/\([a-z]*\)/ig) // returns array containing all matches
嘗試一個正則表達式 :
str.match(/\([A-Za-z]*\)/g); // will match all occurrences
您可以根據需要匹配的內容在[]
添加更多部分。 例如,如果要包括數字,則為0-9
。 只需避免使用.*
,因為這會將"(test) nope! (test)"
作為一個塊進行匹配。
本質上,此正則表達式的主旨是您希望括號之間的所有大寫/小寫字母都正確。 括號必須轉義(因此\\(
而不是(
),因為括號表示正則表達式中的分組。
只需嘗試\\(.*?\\)
( RegEx
)。
var str = "some textsome textsome text(texttext)some text" str = str.match(/\\(.*?\\)/); console.log(str[0]);
或在您的實現中應用:
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) { var res = arrSplit[i].match(/\\(.*?\\)/); console.log(res[0]) } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.