Регулярное выражение javascript

#javascript #regex #string

#javascript #регулярное выражение #строка

Вопрос:

ребята, мне нужна помощь с некоторыми регулярными выражениями:

вот строка:

 <div style="width:477px;" id="__ss_8468630"><strong style="display:block;margin:12px 0 4px;"><a rel="nofollow" target="_blank" href="http://www.slideshare.net/Account/title" title="amp;#x002019;s DDM SaaS Antivirus Patch Management Solution">DDM SaaS Antivirus Patch Management Solution</a></strong> <div style="padding:5px 0 12px;"> View more documents from <a rel="nofollow" target="_blank" href="http://www.slideshare.net/account">Account</a> </div> </div>
  

и мне нужно получить только идентификационный номер.

пример. вывод:

8468630

спасибо всем

Комментарии:

1. всегда ли оно будет в одном и том же формате? всегда одинаковое количество цифр? и т.д.?

2. это (id =» _ss ) всегда одно и то же

3. @MattBall — ваше мнение не совсем применимо в данном случае. Он пытается извлечь часть строки внутри атрибута HTML. Да, он должен использовать синтаксический анализатор для получения значения атрибута, но ему все равно нужно регулярное выражение или подстрока, чтобы получить ту часть строки, которую он хочет.

4. спасибо, Мэтт, хорошая идея. Моя глупая голова

Ответ №1:

Регулярное выражение не требуется, вы можете просто выполнить простую замену строки.

 element.id.replace('__ss_',''); // => '8468630'
  

Комментарии:

1. Это будет работать, но предполагает, что __ss_ часть строки всегда будет одинаковой. Он не указал это в вопросе, поэтому регулярное выражение могло быть лучше.

2. Он говорит: «вот строка», что кажется довольно конкретным случаем. Даже если внешний интерфейс строки изменяется, пока длина идентификатора остается неизменной, вы все равно можете сделать это без регулярного выражения: element.id.substr(element.id.length-7, element.id.length); хотя это, вероятно, было бы не лучше, чем element.id.replace(/[^0-9]/g,'');

Ответ №2:

 "__ss_8468630".match(/[d.] /g); // --> [8468630]
  

Ответ №3:

Это приведет к получению этих цифр. Хотя это приведет к сбою, если число цифр изменится.

 d{7}
  

Ответ №4:

Будучи элементом div, вы могли бы использовать это

 var n = e.id.match(/__ss_(d )/)[1];
  

As match возвращает массив, содержащий полное совпадение в позиции 0 (__ss_8468630) и соответствующие группы в той же позиции. Группа 1 «( d )» (8468630)

Ответ №5:

Вы можете сделать следующее:

 var num = element.id.replace(/D*/g, '' )