2015-09-12 3 views
0

Я хочу разбить следующее регулярное выражение на несколько строк кода.Разбить длинное регулярное выражение на несколько строк в JavaScript

document.body.innerHTML = document.body.innerHTML.replace(/Aarau|Aargau| <break here> more|words|follow|here/g, function(m) { 
    return '<span style="background-color:lightblue">'+m+'</span>'; 
}); 
+2

Где строка замены? Отправьте пример вместе с ожидаемым выходом. –

+0

Выход не важен. Я просто хочу обернуть строку в своем редакторе! – kame

+0

https://jsfiddle.net/5pha5tzc/ – kame

ответ

3

Вот легкий способ разорвать линию:

document.body.innerHTML = document.body.innerHTML.replace(
    /Aarau|Aargau|more|words|follow|here/g, 
    function (m) { 
     return '<span style="background-color:lightblue">'+m+'</span>'; 
    } 
); 

Если у вас есть действительно длинный регулярное выражение, записать его в виде строки и скомпилировать его:

var longRegex = new RegExp('Aarau|Aargau|aardvark|aardwolf|' + 
    'aargh|more|stuff|earth|worm|earthworm|geese|moose|mice|' + 
    'yet|more|and|more|et|cetera|and|so|on', 'g'); 

document.body.innerHTML = document.body.innerHTML.replace(longRegex, 
    function (m) { 
     return '<span style="background-color:lightblue">'+m+'</span>'; 
    } 
); 

One больше возможностей состоит в том, чтобы написать отдельные слова в массиве, а затем присоединить их к | при компиляции регулярного выражения. Это особенно удобно, если вы уже храните массив слов.

var words = ['Aarau', 'Aargau', 'aardvark', 'aardwolf', 'aargh', 
 
    'more', 'stuff', 'earth', 'worm', 'earthworm', 'geese', 'moose', 'mice', 
 
    'yet', 'more', 'and', 'more', 'et', 'cetera', 'and', 'so', 'on']; 
 

 
var wordRegex = new RegExp(words.join('|'), 'g'); 
 
document.body.innerHTML = document.body.innerHTML.replace(wordRegex, 
 
    function (m) { 
 
     return '<span style="background-color:lightblue">'+m+'</span>'; 
 
    } 
 
);
There is an aardwolf eating earth containing worms in Aargau.

+0

Но что, если бы у меня был код Aarau | Aargau | more | words | follow | here | Aarau | Aargau | more | words | follow | here | Aarau | Aargau | more | words | follow | here | Aarau | Aargau | more | слова | следовать | здесь? – kame

+0

См. Альтернативу: компиляция регулярного выражения из строки. Я только что пересмотрел свой ответ. –

+0

https://jsfiddle.net/5pha5tzc/ Но почему здесь это не работает? – kame

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