Самый простой способ удалить внутренние элементы html и вернуть только текст будет Функция JQuery .text () .
Пример:
var text = $('A nice house was found in Toronto
');
alert( text.html() );
//Outputs A nice house was found in Toronto
alert( text.text() );
////Outputs A nice house was found in Toronto
Необходимо использовать номер один, потому что номер два является плохой практикой. Полагайте, что разработчик, который приезжает после Вас, хочет к строкам совпадения, которые сопровождаются восклицательным знаком. Если он использует:
"[^"]*"!
или:
".*?"!
различие появляется, когда у Вас есть предмет:
"one" "two"!
первые соответствия regex:
"two"!
, в то время как второй regex соответствует:
"one" "two"!
Всегда быть столь конкретным, как Вы можете. Используйте отрицаемый класс символов, когда Вы будете мочь.
Другое различие - то, что [^ "]* может охватить через строки, в то время как.* не делает, если Вы не используете однострочный режим. [^ "\n] * исключает разрывы строки также.
Что касается отслеживания в обратном порядке, второй regex отслеживает в обратном порядке для каждого символа в каждой строке, которой это соответствует. Если заключительная кавычка отсутствует, оба, которых regexes отследит в обратном порядке через весь файл. Только порядок, в котором затем отслеживают в обратном порядке, отличается. Таким образом, в теории, первый regex быстрее. На практике Вы не заметите различия.
Я предложил бы:
([\"'])(?:\\\1|.)*?\1
, Но только потому, что это обрабатывает оставленные символы кавычки и позволяет и 'и "быть символом кавычки. Я также предложил бы смотреть на эту статью, которая входит в эту проблему подробно:
http://blog.stevenlevithan.com/archives/match-quoted-string
Однако, если Вы не имеете серьезную проблему производительности или не можете быть уверены во встроенных кавычках, пойдите с более простым и более читаемым:
/".*?"/
я должен признать, что нежадные шаблоны не являются основным регулярным выражением 'редактора' стиля Unix, но они становятся довольно распространенными. Я все еще не привык к операторам группы как (?: материал).
Я сказал бы, что второй лучше, потому что он перестал работать быстрее, когда завершение "
отсутствует. Первый отследит в обратном порядке по строке, потенциально дорогой операции. Альтернатива regexp при использовании жемчуга 5.10, была бы /"[^"]++"/
. Это передает то же значение, как версия 1 делает, но с такой скоростью, как версия два.
Я пошел бы для номера два, так как намного легче читать. Но я все еще хотел бы соответствовать пустым строкам, таким образом, я буду использовать:
/".*?"/
С точки зрения производительности (чрезвычайно тяжелый, продолжительный цикл по длинным строкам), я мог предположить, что
"[^"]*"
быстрее, чем
".*?"
, потому что последний сделал бы дополнительную проверку на каждый шаг: заглядывание на следующий символ. Первый смог бы бессмысленно перевернуть строку.
, Поскольку я сказал в реальных сценариях, это едва будет примечательно. Поэтому я пошел бы с номером два (если моя текущая regex разновидность поддерживает его, который является), потому что это намного более читаемо. Иначе с номером один, конечно.
Я предпочитаю первый regex, но это - конечно, вопрос вкуса.
первый мог бы быть более эффективным?
Search for double-quote
add double-quote to group
for each char:
if double-quote:
break
add to group
add double-quote to group
По сравнению с чем-то немного более сложное отслеживание в обратном порядке вовлечения?
Рассмотрение, что я даже не знал о "*?" вещь до сих пор, и я использовал регулярные выражения для 20 + годы, я проголосовал бы за первое. Это, конечно, проясняет, что Вы пытаетесь сделать - Вы пытаетесь соответствовать строке, которая не включает кавычки.
Используя отрицаемый класс символов предотвращает соответствие, когда граничный символ (doublequotes, в Вашем примере) присутствует в другом месте во входе.
Ваш пример № 1:
/"[^"]+"/ # match quote, then everything that's not a quote, then a quote
соответствия только самая маленькая пара подобранных кавычек - превосходный, и большую часть времени это - все, в чем Вы будете нуждаться. Однако, если Вы вложили кавычки, и Вы интересуетесь самой большой парой подобранных кавычек (или во всех подобранных кавычках), Вы находитесь в намного более сложной ситуации.
К счастью Damian Conway готов со спасением: текст:: Сбалансированный там для Вас, если Вы находите, что существует несколько подобранных меток кавычки. Это также имеет достоинство соответствия другой парной пунктуации, например, круглым скобкам.