字符串替换所有不工作的字符JS

时间:2015-04-28 01:25:29

标签: javascript jquery html

目前我对JS很新,但对PHP非常好。这是一个艰难的过渡! 现在问题是,在字符串中替换字符。

基本上我有一个textarea,我想将所有内容更新到下面的div。然后在每个实时更新的基础上,我想替换所有' ['和']'与'<'和'>',它变得有点复杂。我希望它显示为实时HTML(感觉它们将是来自BBCode的HTML标签)。

这是我目前所拥有的:

HTML -

<textarea id="my_textarea" name="my_textarea"></textarea>
<input type="button" value="b" name="texteditorstylebuttonbold"/>
<input type="button" value="i" name="texteditorstylebuttonitalicize"/>
<input type="button" value="u" name="texteditorstylebuttonunderline"/>
<div id="display"></div>

JS -

function getInputSelection(elem){
    if(typeof elem != "undefined"){
        start = elem[0].selectionStart;
        end = elem[0].selectionEnd;
        return elem.val().substring(start, end);
    }
    else{
        return '';
    }
}

$('input:button[name^="texteditorstylebutton"]').click(function() {
    var myTextAreaValue = $('#my_textarea').val();
    var selectedText = getInputSelection($('#my_textarea'));
    var updatedText = '['+$(this).val()+']' + selectedText + '[/'+$(this).val()+']';
    myTextAreaValue = myTextAreaValue.replace(selectedText, updatedText);
    $('#my_textarea').val(myTextAreaValue)
});

$('my_textarea').onkeyup(function() {
    $('display').val() = $('#my_textarea').val().replace(new RegExp("[", 'g'), "<");
});

在继续之前,其他代码和输入用于为代码创建样式按钮,并且它们被假定为BBCode。我知道BBCode实际上并不完全是,但我正在做自己的事情! :)问题是虽然这段代码甚至不会直接更新代码...请帮助!

P.S。一个小例子:

用户在文本区域中输入此内容:[b] This is bold text [/b]

然后直播,它会将[b]替换为粗体HTML标记,并在下方向用户显示:这是粗体文字

请问您是否不明白问题所在。谢谢! :)

1 个答案:

答案 0 :(得分:3)

这意味着您要将一些html内容附加到div。如果您希望div识别html标签,则需要使用.html()属性:

$('#display').html($('#my_textarea').val());

此外,您需要按以下步骤更新此部分(onkeyup应为keyup,如果您使用 ID SELECTER # >):

$('#my_textarea').keyup(function() {
    $('#display').html($('#my_textarea').val());
});

这是一个有效的演示:https://jsfiddle.net/0uoshu0s/6/