Ich habe dies im Moment, (ich habe den Code hier gefunden).
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
someText.replace(exp, "<a href='$1'>$1</a>");
Sie ersetzt alle http://URL in someText mit einer eigenen <a href>
Aber ich brauche auch eine Übereinstimmung mit www. ohne das http. Ich fand diese RegEx auf RegEx Lib.
((http\://|https\://|ftp\://)|(www.))+(([a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9%:/-_\?\.'~]*)?
Und ich habe es auf der RegEx-Checker-Seite getestet, http://www.nvcc.edu/home/drodgers/ceu/resources/test_regexp.asp
Sie stimmt mit den gewünschten Zeichenfolgen überein. Aber wenn ich es in meine exp var setzen, ist JavaScript explodiert und verursacht einen Fehler.
Ich habe sogar versucht, sie als neue RegExp neu zu erstellen, etwa so.
var exp = new RegExp(((http\://|https\://|ftp\://)|(www.))+(([a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9%:/-_\?\.'~]*)?);
Aber es passiert das Gleiche.
Irgendwelche Ideen, was ich falsch mache?
Danke, Kohan