hallo, mijn regexp werkt bijna goed maar nog niet 100%.
bedoeling is dat in myText een foutgespeld woord vervangen wordt door het juiste woord (die heeft de gebruiker gekozen uit een lijst). fout woord is in onderstaand voorbeeld "dus" en het te vervangen woord is "Dis".
wat de regexp moet doen is alle voorkomende "dus"-woorden in myText vervangen, maar alleen als die niet binnen een <tag> vallen. hij vervangt netjes de eerste en laatste "dus" en laat "dus" binnen de <span> tag met rust. echter het woord dus tussen de <span> open- en sluit-tag vervangt hij ook niet maar dat moet wel.
inhoud van myText:
iemand enig idee wat ik fout doe??
bedoeling is dat in myText een foutgespeld woord vervangen wordt door het juiste woord (die heeft de gebruiker gekozen uit een lijst). fout woord is in onderstaand voorbeeld "dus" en het te vervangen woord is "Dis".
wat de regexp moet doen is alle voorkomende "dus"-woorden in myText vervangen, maar alleen als die niet binnen een <tag> vallen. hij vervangt netjes de eerste en laatste "dus" en laat "dus" binnen de <span> tag met rust. echter het woord dus tussen de <span> open- en sluit-tag vervangt hij ook niet maar dat moet wel.
inhoud van myText:
the word dus is <span title='vervang dus niet'>dus</span> not an english word. dus, not!
code:
1
2
3
4
5
6
7
| myWord = "dus";
myReplace = "Dis";
spacers = "\\s\\.\\,\\?\\!\\:\\;";
myText = myText.replace(
/(?!<.*?)(["+spacers+">]+)("+word+")(["+spacers+"<]+)(?![^<>]*?>)/ig,
"$1"+myReplace+"$3"
); |
iemand enig idee wat ik fout doe??