ugrás a tartalomhoz

RegExp több kifejezésre

Meredith · 2013. Aug. 29. (Cs), 11.34
Sziasztok!

Egy kis regexp segítséget szeretnék kérni. Valahogy ez a rész a programozásnak nekem nem megy soha :(
A cél az lenne, hogy adott egy string, melyben változó mennyiségű HTML tag meglétét szeretném vizsgálni.
Ez jelenleg így néz ki:

var searchTerm = ['<h1>', '</h1>' ];
var string     = '<h1>Helló világ</h1>';

$.each(searchTerm, function(j) {
	var rSearchTerm = new RegExp('\\b' + searchTerm[j] + '\\b');

	if (!string.match(rSearchTerm)) {
		console.log( "Hianyzo elem: " + searchTerm[j] );
	}
});
Az első gond, hogy a működésnek betesz, ha kacsacsőrt és / jelet használok a keresésben.
Második, hogy csak akkor működik, ha szóköz határolja a stringben a tageket.
Egyébként, sima szavakra, melyeket szóköz határól, működik! :)

Megköszönném a segítségét annak, aki jobban képben van a regexp világában :)
 
1

A PCRE dokumentáció alapján a

kuka · 2013. Aug. 29. (Cs), 11.46
A PCRE dokumentáció alapján a \b-k használata ebben az esetben logikailag helytelen:
\b matches at a word boundary
A word boundary is a position in the subject string where the current
character and the previous character do not both match \w or \W (i.e.
one matches \w and the other matches \W), or the start or end of the
string if the first or last character matches \w, respectively.
2

Kérdés

Hidvégi Gábor · 2013. Aug. 29. (Cs), 11.49
Azt szeretnéd leellenőrizni, hogy a bemenő karakterlánc érvényes HTML kód-e?
5

Majdnem

Meredith · 2013. Aug. 29. (Cs), 13.31
Csak annyit szeretnék, hogy az általam megadott tagek szerepelnek-e benne, de erre bamegakapa megoldása tökéletes is :)
3

Alternatív mód

bamegakapa · 2013. Aug. 29. (Cs), 11.54
A feladat leírása alapján regex helyett megfelelhetne egy mezei indexOf:
if (string.indexOf(rSearchTerm) === -1) {
4

Ezaz!

Meredith · 2013. Aug. 29. (Cs), 13.30
Úgy látszik túlbonyolítottam magamban a kérdést... :)
Így tökéletesen működik!

Köszi!