2016-02-01 2 views
0

У меня есть строка, как это:Regex чтобы соответствовать вперед или назад слэш

whatever/aaazzzzz 

, а иногда и в виде строки так:

whatever\bbbbzzzzz 

Я хотел бы разделить строку, когда я сопрягать / или \

регулярное выражение, я пытался, кажется, работает

https://regex101.com/r/gP5gL0/1

Когда я использую его в fiddle, он работает с /, но не с \

Любые идеи?

+2

Это должно быть 'test =" безотносительно \\ aaaaaa "' (две косые черты). – georg

+1

Добавить ваш фактический код, так что мы можем сказать, почему он не работает –

+1

Кажется, работает: https://jsfiddle.net/vjxtwt2m/ – sp00m

ответ

1

Вопрос здесь не само регулярное выражение, но неизбежный факт, что JavaScript не неявно поддерживает строковые литералы (т.е. те, где обратная косая черта интерпретируется как напечатанный, а не обозначает escape-последовательность. Гораздо больше можно прочитать here).

Строки, полученные из любого источника другие, чем исходный код, по умолчанию интерпретируются как литерал, как показано в this fiddle.

<script> 
function splitTheString() 
{ 
    //test = escape("whatever\aaaaaa"); 
    var test = document.getElementById("strToSplit").value; 
    a = test.split(/(\\|\/)/)[0]; 
    alert(a); 
} 
</script> 
<form> 
Split this string:<br> 
    <input type="text" id="strToSplit"> 
    <a href="javascript:splitTheString();">Split the string</a> 
</form> 
1

Используйте этот

var arr = str.split(/[\\|\/]/); 

var str = 'whatever\\bbbbzzzzz'; 
 
alert(str.split(/[\\|\/]/))

+0

Как я уже сказал, у меня нет \\ – DeseaseSparta

+0

@DeseaseSparta, (\\ | \ /) не будет разбиваться должным образом, вы должны использовать/[\\ | \ /] / – Siva

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