javascript regexp

R

reflex

Hi,

i have script with pattern (href=['"]?(.*)([#]{1}[^'"<>]+)['"]?),
where i match any occurence of url and replace hyperlink so i have
only anchor in it.

var regExp = /href=['"]?(.*)([#]{1}[^'"<>]+)['"]?/ig;
var wholeContent = document.body.innerHTML; //doenst look like this
I only make it for example
wholeContent = wholeContent.replace(regExp, 'href="$2"');

All works great, but I dont want to change URL's which containt word
'item_id'

How to do that? :D

Thx for help
 
S

scripts.contact

var regExp = /href=['"]?(.*)([#]{1}[^'"<>]+)['"]?/ig;
var wholeContent = document.body.innerHTML; //doenst look like this
I only make it for example
wholeContent = wholeContent.replace(regExp, 'href="$2"');

All works great, but I dont want to change URL's which containt word
'item_id'

var regExp = /href=(['"])?(.*)([#]{1}[^'"<>]+)\1/ig;
var links=document.links;
for(var i=0;i<links.length;i++){
if(!links.href.indexOf("item_id"))
links.href.replace(regExp, 'href="$3"');
}
 
R

reflex

scripts.contact napsal:
var regExp = /href=['"]?(.*)([#]{1}[^'"<>]+)['"]?/ig;
var wholeContent = document.body.innerHTML; //doenst look like this
I only make it for example
wholeContent = wholeContent.replace(regExp, 'href="$2"');

All works great, but I dont want to change URL's which containt word
'item_id'

var regExp = /href=(['"])?(.*)([#]{1}[^'"<>]+)\1/ig;
var links=document.links;
for(var i=0;i<links.length;i++){
if(!links.href.indexOf("item_id"))
links.href.replace(regExp, 'href="$3"');
}


Very nice, but I cant use DOM for this. I am changing content of
string variable.
 
E

Evertjan.

scripts.contact wrote on 26 mrt 2007 in comp.lang.javascript:
var regExp = /href=['"]?(.*)([#]{1}[^'"<>]+)['"]?/ig;
var wholeContent = document.body.innerHTML; //doenst look like this
I only make it for example
wholeContent = wholeContent.replace(regExp, 'href="$2"');

All works great, but I dont want to change URL's which containt word
'item_id'

var regExp = /href=(['"])?(.*)([#]{1}[^'"<>]+)\1/ig;

var regExp = /href\s*=\s*(['"])?([^#]*)(#[^'"<>]+)\1/ig;

I think.
var links=document.links;
for(var i=0;i<links.length;i++){
if(!links.href.indexOf("item_id"))
if(!/item_id/.test(links.href))


links.href.replace(regExp, 'href="$3"');


links.href = links.href.replace(regExp, 'href="$3"');
 
E

Evertjan.

reflex wrote on 26 mrt 2007 in comp.lang.javascript:
scripts.contact napsal:
var regExp = /href=['"]?(.*)([#]{1}[^'"<>]+)['"]?/ig;
var wholeContent = document.body.innerHTML; //doenst look like this
I only make it for example
wholeContent = wholeContent.replace(regExp, 'href="$2"');

All works great, but I dont want to change URL's which containt word
'item_id'

var regExp = /href=(['"])?(.*)([#]{1}[^'"<>]+)\1/ig;
var links=document.links;
for(var i=0;i<links.length;i++){
if(!links.href.indexOf("item_id"))
links.href.replace(regExp, 'href="$3"');
}


Very nice, but I cant use DOM for this. I am changing content of
string variable.


Why not?

Simply reenstate the old innerHTML after use:

var saveHTML = document.body.innerHTML;

// Do the above DOM things

var yourResultHTMLstring = document.body.innerHTML;

var document.body.innerHTML = saveHTML;
 
S

scripts.contact

scripts.contact wrote on 26 mrt 2007 in comp.lang.javascript:
var regExp = /href=['"]?(.*)([#]{1}[^'"<>]+)['"]?/ig;>
All works great, but I dont want to change URL's which containt word
'item_id'
var regExp = /href=(['"])?(.*)([#]{1}[^'"<>]+)\1/ig;

var regExp = /href\s*=\s*(['"])?([^#]*)(#[^'"<>]+)\1/ig;

or
var regExp = /href\s*=\s*(['"])?[^#]*(#[^>\1 ]+)/ig;

and then use 2nd match.
var links=document.links;
for(var i=0;i<links.length;i++){
if(!links.href.indexOf("item_id"))


if(!/item_id/.test(links.href))


or
if(links.href.indexOf("item_id")==-1)
 
R

reflex

If you have something like:

var myString = 'Blablabla <a href="index.html?
item_id=44456465#To_the_anchor">looks nice</a> Blablabal';

var links = myString.links;

doesnt work, bcs myString is not an element.

Sry for my bad explanation :]
 
E

Evertjan.

reflex wrote on 26 mrt 2007 in comp.lang.javascript:
If you have something like:

var myString = 'Blablabla <a href="index.html?
item_id=44456465#To_the_anchor">looks nice</a> Blablabal';

var links = myString.links;

doesnt work, bcs myString is not an element.

Sry for my bad explanation :]

Where are you responding on?

[please always quote on usenet]
 
R

reflex

Where are you responding on?

To every one.

Try something like this:

var testText = 'asdjlkajsdkljlasdjlakl <a href="adasda.html">ada</a>
asdadadada <a href="adada.php?item_id=4454#Anchor">sdada</a>';

var regExp = /href=(['"])?(.*)([#]{1}[^'"<>]+)\1/ig;
var links=testText.links;
for(var i=0;i<links.length;i++){
if(!links.href.indexOf("item_id"))
links.href.replace(regExp, 'href="$3"');
}

The problem is, that function "links" works only with 'document', but
i have to use 'text' (string)
http://msdn.microsoft.com/workshop/author/dhtml/reference/collections/links.asp

I am sorry for my earlier bad explanation
var wholeContent = document.body.innerHTML; //doenst look like this
I only make it for example

thats my mistake, it should looks like
var wholeContent = 'asdjlkajsdkljlasdjlakl <a href="adasda.html">ada</
a> asdadadada <a href="adada.php?item_id=4454#Anchor">sdada</a>';

Thx for patience :]
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,780
Messages
2,569,611
Members
45,265
Latest member
TodLarocca

Latest Threads

Top