2010-04-06 2 views

ответ

-1

Это грубое решение вашей проблемы.

var match = RegTxt.match(/\'[^\']*'/g) 
match = match.substring(1, match.length - 2); 
+1

Было бы хорошо знать, почему понижающие голоса, основываясь на том, что это функционально работает, и я действительно упоминал, что оно является сырым раствором. – Fenton

-1
var matches = str.match(regex); 
var newMatches = []; 
for(i in matches) 
{ 
var word = matches[i]; 
newMatches.push(word.substring(1,word.length-1)) 
} 

newMatches теперь будет содержать массив, который нужно.

0

Trivial подход:

RegTxt.replace(/'/g, "") 

с помощью регулярных выражений:

RegTxt.replace(/\'([^\']*)'/g, "$1") 
3

Это было бы очень просто, если JavaScript поддерживается отрицательные: Утверждения назад

/(?<=').*?(?=')/ 

Но, к сожалению, это не ,

В таких случаях мне нравится абы использование String.prototype.replace:

// btw, RegTxt should start with a lowercase 'r', as per convention 
var match = []; 
regTxt.replace(/'([^']*)'/g, function($0, $1){ 
    match.push($1); 
}); 
match; // => ['test', 'test2'] 
+0

>> RegTxt должен начинаться с строчной буквы «r», согласно соглашению. Какая конвенция? Это очень субъективно и есть много мнений по этому вопросу! –

+1

Столичный первый символ в JavaScript указывает на конструктор. Как я уже сказал, это конвенция. См [это] (http://books.google.co.uk/books?id=PXa2bby0oQ0C&pg=PA49&lpg=PA49&dq=Crockford+capital+constructor&source=bl&ots=HHshq8r2dL&sig=l3N7p2R9OeVl5s42pT8hophevgs&hl=en&ei=YWm7S4eiK4ay-Abjq_zNCA&sa=X&oi=book_result&ct=result&resnum = 1 & ved = 0CAYQ6AEwAA # v = onepage & q = & f = false) * (... интересно, почему я был проголосован) * – James

+0

да, ваше решение устраняет проблему – mushtaq

Смежные вопросы