如何使用正則表達式除去字符串而不使用的尖括號內的任何內容?如何刪除字符串括號中的文本而不使用JavaScript中的正則表達式?
例如是我有以下輸入:
var str = "This <is> some <random> text";
,並想獲得以下輸出:
這一些文字
如何使用正則表達式除去字符串而不使用的尖括號內的任何內容?如何刪除字符串括號中的文本而不使用JavaScript中的正則表達式?
例如是我有以下輸入:
var str = "This <is> some <random> text";
,並想獲得以下輸出:
這一些文字
作出假設括號會排隊爲在你的例子中,你可以這樣做:
str = str.split('(')
.map(function(s) { return s.substring(s.indexOf(')')+1); })
.join('');
請注意,刪除括號內的文本時,您將留下雙倍空間。這似乎符合您的要求,因爲這兩個空格實際上都不在括號內。他們可以用.replace(/\s+/g, ' ')
刪除,但這當然會使用正則表達式。如果你想假設括號內的字總是跟着那也是要刪除一個空間,你可以做這樣的事情:
str = str.split('(')
.map(function(s) {
return s.indexOf(') ') == -1
? s
: s.substring(s.indexOf(') ') + 2);
})
.join('');
在這個例子中,你需要檢查的情況存在字符串中沒有括號("This "
)。之前我們並不需要這樣做,因爲我們總是+1,如果indexOf
取-1,那就意味着取整個字符串。
多麼奇怪的要求!這不會使用正則表達式:
"This (is) some (random) text".split('(').map(function(el) {
var i = el.indexOf(')');
return el = ~i ? el.substr(i) : el;
}).join('('); // This() some() text
var str = "This (is) some (random) text";
while (str.indexOf('(') != -1) {
str = str.substring(0, str.indexOf('(') - 1) + str.substring(str.indexOf(')') + 1);
}
// Output: This some text
什麼'無功海峽= 「這(是))一些(隨機)文本」;'?編輯:或var var =「這是(是)一些(隨機)文本」;''爲此? – Jeff 2013-03-19 08:13:47
爲什麼你不想使用正則表達式? – epoch 2013-03-19 08:14:02
我想補充一點,你想要實現是正則表達式存在的主要原因之一 – zero 2013-03-19 08:27:11