Je moet inderdaad een replace function hebben. En deze is er ook :) .
Vaag voorbeeld van internet:
myString = new String("Go to DevGuru today!")
rExp = /devguru/gi;
newString = new String ("http://www.devguru.com")
results = myString.replace(rExp, newString.link("http://www.devguru.com"))
in jou geval wordt 't DENK ik (ben niet zo super met javascript)
var rExp = '/\[b\](.*)\[\/b\]/gi';
veld.value = veld.value.replace(rExp, schrijf);
Iets in deze richting is 't. Met google kom je btw een heel eind denk ik want ik kreeg een hele hoop hits op javascript+replace+function of javascript+replace
Link gekopieerd
ik heb nu dit, maar dit vervangt niks :-s
Javascript console van FF geeft ook niks:
<?
function styles(style)
{
var selectedText = getSelectedText();
var veld = document.mail.ber;
if(selectedText != '')
{
var vervang = /selectedText/;
var schrijf = '[' + style + ']' + selectedText + '[/' + style + ']';
veld.value.replace(vervang, schrijf);
veld.focus();
}
else
{
var schrijf = '[' + style + '] [/' + style + ']';
veld.value += schrijf;
veld.focus();
}
}
?>
Link gekopieerd
Probeer zo eens:
// JavaScript Document
function styles(style)
{
var selectedText = getSelectedText();
var veld = document.mail.ber;
if(selectedText != '')
{
var regex = new RegExp ('\/' + selectedText + '\/', 'gi') ;
var schrijf = '[' + style + ']' + selectedText + '[/' + style + ']';
veld.value.replace(regex, schrijf);
veld.focus();
}
else
{
var schrijf = '[' + style + '] [/' + style + ']';
veld.value += schrijf;
veld.focus();
}
}
edit: typo
Link gekopieerd
Helaas jan, er wordt wederom niks vervangen.
Het enige wat er gebeurd is dat de text 1 maal 'knipperd'.
Maar er komt geen [ignore][/ignore] voor te staan en geen [ignore] [/ignore] erachter
Link gekopieerd
Die methode van Jan is idd beter maar ik denk dat je em nog een beetje aan moet passen:
edit: @Jan. In regex moet je die eerste slashes niet escapen toch? Dat doe je bij preg_replace() etc ook niet.
// JavaScript Document
function styles(style)
{
var selectedText = getSelectedText();
var veld = document.mail.ber;
if(selectedText != '')
{
var regex = new RegExp ('/' + selectedText + '/', 'gi') ;
var schrijf = '[' + style + ']' + selectedText + '[/' + style + ']';
veld.value = veld.value.replace(regex, schrijf);
veld.focus();
}
else
{
var schrijf = '[' + style + '] [/' + style + ']';
veld.value += schrijf;
veld.focus();
}
}
Link gekopieerd
Zoals eerdere gezegd, gebruik de methode die Arjan in zijn nieuwssysteem heeft gestopt.
Javascript
Werkt het perfect!
Heb het zelf nu ook al een poos in gebruik.
Voorbeeld:
Arjan's nieuwssysteem
Link gekopieerd
Willen-Jan,
Het is veel leuker dit zelf werkend te krijgen ;-)
Verder:
Als ik zeg: veld.value -= selectedText; dan doet hij het bijna goed, maar dan komt er op de plek van de geselecteerde tekst 'NaN' te staan...
Link gekopieerd
Iemand een idee waarom die replace niet werkt?
Of heeft iemand een oplossing dat veld.value -= selectedText; niet veranderd in 'NaN' maar gewoon leeg blijft...
Link gekopieerd
Werkte mijn manier niet? Zo nee wat deed ie dan wel / niet?
Link gekopieerd
hetzelfde als die van jan,
De tekst knippert 1x, en dat was het...
Link gekopieerd