Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   регулярные выражения (https://javascript.ru/forum/misc/30891-regulyarnye-vyrazheniya.html)

red-nicolas 19.08.2012 14:15

регулярные выражения
 
Есть строка. Как ее провести через регулярное выражение, что бы там остались только латинские буквы и знаки "-","_"?

Deff 19.08.2012 14:58

str=str.replace(/[^a-z,_-]*/ig,'')

red-nicolas 19.08.2012 16:05

Спасибо, работает.

Aetae 19.08.2012 16:06

Запятая лишняя.

axmed2004 26.08.2012 19:27

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

<section id="n1">
<title>
<p>1</p>
</title>
<p>some text</p>
</section>

<section id="n2">
<title>
<p>2</p>
</title>
<p>some text</p>
</section>

<section id="n3">
<title>
<p>3</p>
</title>
<p>some text</p>
</section>

надо выбрать в каждом блоке id, содержимое title и блока c текстом.

match(/<section id=\"([-_0-9a-zа-я\W]+)\">[\s*]<title>[\s*]<p>[\s*]([-_0-9a-zа-я\W]+)[\s*]<\/p>[\s*]<\/title>[\s*]<p>[\s*]([-_0-9a-zа-я\W]+)[\s*]<\/p>[\s*]<\/section>/gi) не работает

Deff 26.08.2012 19:29

axmed2004,
Поясните на регулярку словах

Приведите пару правильных и пару неправильных вариантов

Aetae 26.08.2012 19:37

А сделать это через dom не судьба? Зачем извращаться?

axmed2004 26.08.2012 21:42

нужно получить массив с элементами из <section>...</section>. потом пробежать по нему и выделять в каждом содержимое title и p. Из этого нужно собрать такие блоки:

<div id="n1">
<p>тут то что в title p</p>
<p>тут остальной текст</p>
</div>

<div id="n2">... и т.д.

Aetae, если знаете способ полегче, буду признателен

bes 26.08.2012 21:48

<section id="n1">
<title>
<p>1</p>
</title>
<p>some text1</p>
</section>

<section id="n2">
<title>
<p>2</p>
</title>
<p>some text2</p>
</section>

<section id="n3">
<title>
<p>3</p>
</title>
<p>some text3</p>
</section>

<script>
window.onload = function () {
	var elems = document.getElementsByTagName('section');
	var len = elems.length;

	for (var i = 0; i < len; i++) {
		alert('title: ' + elems[i].children[0].innerHTML.replace(/&lt;/g, '<').replace(/&gt;/g, '>') + '\n p: ' + elems[i].children[1].innerHTML);
	}
}
</script>

axmed2004 26.08.2012 22:15

я не совсем верно объяснил. этот текст будет в textarea. вариант с DOM не очень подходит. хотелось бы именно рег выр


Часовой пояс GMT +3, время: 04:09.