2014-12-09 3 views
0

Я пытаюсь удалить теги HTML из строки. Он работает на регулярных выражений шашек, но не в этом коде:Regex для скриптов Google Apps ничего не возвращает

function myFunction() { 
    var textstfu = "<b> I love </b> pancakes <i> I love pancakes </i>"; 
    textstfu.replace(/(<(\D)>)([^<>])+(<\/(\D)>)/gi, "$3"); 
    Logger.log(textstfu); 
} 

Что он возвращается в <b> I love </b> pancakes <i> I love pancakes </i>. Что здесь происходит?

ответ

0

Вы не назначаете заменяющее выражение переменной (.replace является прототипом функции и не присваивает исходное свойство).

Try:

function myFunction() { 
    var textstfu = "<b> I love </b> pancakes <i> I love pancakes </i>"; 
    textstfu = textstfu.replace(/(<(\D)>)([^<>])+(<\/(\D)>)/gi, "$3"); 
    Logger.log(textstfu); 
} 
+0

Я знал, что делает глупую ошибку. Когда я тестирую его, он должен читать «Я люблю блины, которых люблю блины», тогда как он возвращает только «блины», которые, как я предполагаю, являются немаркированными «блинами». Почему такое поведение происходит? – shman613

+0

Ваше выражение жадное, поэтому оно соответствует целой строке, начинающейся до конца. – brandonscript

+0

Исправлено: Regex должен был/(<(\D)>) ([^ <>] +) (<\/(\D)>)/g - «+» внутри группы захвата. – shman613

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