2013-09-27 2 views
0

я имею проблемы с расщеплением строки с этим именем внутри: Экс-ан-ПровансКак разделить определенную строку по разделителю

возможности Струнные являются:

Экс-ан-Прованс-Test2 Test2- Aix-en-Provence

Я бы хотел динамически разбить строку с помощью delmiter ('-'), чтобы разделить Aix-en-Provence и Test2.

Как сделать заказ? Я пытался с Regex.execute с разными шаблонами, но безуспешно. Я анализирую данные в Javascript.

Заранее спасибо.

С наилучшими пожеланиями

+4

Для этого вам нужно иметь дополнительные знания, отличные от того, что вы используете '-', например, что« Экс-ан-Прованс »(или« Тест2 ») является особенным. Имеете ли вы это предварительное знание, доступное вашему коду? Потому что, если нет, вы не можете этого сделать. –

+0

Зависит от того, какими могут быть ваши строки. Может быть, регулярное выражение могло бы помочь: 'input.split (/ - (?! en | Provence) /);' – acdcjunior

ответ

0

Вы можете попробовать что-то вроде этого:

function mySplit(myString, splitString, protectString){ 
    var specialString = 'somespecialchar'; 
    var r = new RegExp('(^|-)('+protectString+')(-|$)'); 
    var a = myString.replace(r, '$1'+specialString+'$3').split('-'); 
    a.forEach(function(e, i, a){ 
     if (e == specialString) a[i] = protectString; 
    }); 
    return a; 
} 
mySplit('Aix-en-Provence-Test2', '-', 'Aix-en-Provence'); 
mySplit('Test2-Aix-en-Provence', '-', 'Aix-en-Provence'); 

функции далека от совершенства, вы должны избежать регулярных выражений специальных символов из "protectString", но это делает работу для ваших строк.

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