2013-12-21 2 views
2

У меня есть веб-сайт, который я хотел бы удалить с помощью jQuery.jQuery + Regex: нужна помощь при создании regex

Я хотел бы найти что-нибудь в своем содержании с этим символом открытия [и закрывающим символом] и удалить их, включая содержимое между ними.

Чтобы быть ясным, на самом деле это формат Shortcode из WordPress. И некоторые примеры их включают в себя

  • [cudazi_column ширина = '6' класс = 'альфа']
  • [cudazi_column_end]
  • [cudazi_column ширина = '6' класс = 'омега']
  • [cudazi_slider slide_delay = "4000" slide_effect = "слайд" категории = "дома"]

Я хочу, чтобы иметь возможность удалить их из содержимого с помощью JQuery

Может ли кто-нибудь указать мне в правильном направлении?

Я использовал этот сценарий в прошлом для другого проекта, и было интересно, если я мог бы использовать его снова, если мне удалось получить правильный REGEX

$(".content").html(function(i,o){ 
    return o.replace(/@[0-9:\s]+(am|pm)/ig, ''); 
}); 
+1

[** с ͖̉ ͠P̯͍̭O̚ N̐Y̡ H̸̡̪̯ͨ͊̽̅̾Ȩ̬̩̾͛ͪ̈͘ ̶̧̨̹̭̯ͧ̾ͬC̷̙̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔ **] (http: // stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contains-tags) – adeneo

+1

Это сообщение применимо только в том случае, если вы на самом деле пытаетесь разбирать сложный контент значимым образом. Теперь он применяется для удаления ограниченного числа синтаксически похожих токенов, таких как эти. – Jack

+0

Вижу. Поэтому то, чего я хотел бы достичь, невозможно? –

ответ

1

С [] получить нас Эда для символов варьируются в регулярном выражении (например: [аз] для всех строчных букв) вам нужно цитировать их любят:

\[ 

И для открытия и закрытий квадратных скобок:

\[ \] 

между ними вы хотите, чтобы соответствовать все, что не угол закрывающая скобка:

[^\]]* 
  • означает одно о r несколько раз. Если вы хотите сохранить [] вы должны использовать + вместо *

Так позже средняя часть между старта/финиша матчей вы в конечном итоге с:

\[[^\]]*\] 

и, конечно, вы будете нужно/вокруг них:

/\[[^\]]*\]/ 

и вы в конечном итоге с:

$(".content").html(function(i,o){ 
    return o.replace(/\[[^\]]*\]//ig, ''); 
}); 
+0

Большое вам спасибо за это, а также пошаговое объяснение. Надеюсь, я могу написать простое регулярное выражение в будущем, поэтому спасибо за это действительно крутое объяснение! –

2

регулярное выражение, чтобы соответствовать строка (строки) в вашем Приведенное выше описание было бы:

/(\[.+\])/ 

Так что да, вы можете сделать это:

$(".content").html(function(i,o){ 
    return o.replace(/(\[.+\])/g, ''); 
}); 
+0

Это хорошо выглядит! Спасибо!! –

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