Разбор в JavaScript - PullRequest
       2

Разбор в JavaScript

1 голос
/ 15 сентября 2010

Я хочу проверить строку, и если у нее нет <br /> запуска, то я не хочу ничего делать
например mysqtinr = 23435-acs
как видите, не <br /> запускается но если строка имеет следующее, то я хочу разобрать ее

myString = <br /> some text goes here <b> Some other things </b>: just more test <b> http://website/index.php </b> on line <b> 43 </b> <br /> 1234-acd

Я хочу разобрать все после последнего <br />

как я могу это сделать спасибо

Ответы [ 2 ]

2 голосов
/ 15 сентября 2010
var index = myString.lastIndexOf("<br />");
if(index > 0)
    myString = myString.substring(index + "<br />".length);
1 голос
/ 15 сентября 2010
var myregexp = /<br\s*\/>((?:(?!<br\s*\/>).)*)$/;
var match = myregexp.exec(subject);
if (match != null) {
    result = match[1];
} else {
    result = "";
}

Пояснение:

<br\s*/>        # match <br /> with optional space
(               # capture the following:
 (?:            # repeat the following, but don't capture (because the outer parens do so already)
  (?!<br\s*/>)  # assert that it's impossible to match <br />
  .             # if so, match any character
 )*             # do this as many times as necessary...
)               # (end of capturing group)
$               # ...until the end of the string.

Итак, сначала мы пытаемся сопоставить <br/> или <br /> и т. Д. Если это не удастся, совпадение не удастся. Если нет, то мы фиксируем каждый следующий символ до конца строки , если только не будет соответствовать другому <br/> по пути. Это гарантирует, что мы действительно сопоставляем с последнего <br/> и далее. Результат будет в обратной ссылке nr. 1 (который может быть пустым, если после последнего <br/> ничего нет).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...