如何通过javascript将*更改为斜体?

Dav*_*pan 4 javascript jquery

我试图改变(显示器)*italic点击按钮时,来自用户的输入textarea的风格.但是没有任何工作没有错误,我认为我的逻辑有点不对,但不能再想了!!!

var italic = 0;
$("#btn").click(function(){
        var val = $("#usr").val();
        val.split("").forEach(function(v,i){
            var sts = /\*/g.test(v);
            if(sts){
                if(italic == 1){
                val.substr(0, i) + '</i>' + val.substr(i + 1);
                italic = 0;
                }
                else{
                val.substr(0, i) + '<i>' + val.substr(i + 1);
                italic++;
                }
            }
        });    
        $("#display").html(val);
});
Run Code Online (Sandbox Code Playgroud)
#display {
    background: #aaa;
    width: 30%;
    height: auto;
    border: 1px solid #ded;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<textarea id="usr"></textarea>
<button id="btn">Insert</button>
<div id="display"></div>
Run Code Online (Sandbox Code Playgroud)

Jus*_*nas 6

使用simple \*(.*?)\*来包装<i>标记中的输出:

$(document).ready(function() {
  $('textarea').keyup(function() {
    $('#output').html($(this).val().replace(/\*(.*?)\*/g, '<i>$1</i>'));
  })
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea></textarea>
<div id="output"></div>
Run Code Online (Sandbox Code Playgroud)


RegEx解释说:

\*- literal *(*在RegEx中表示任何字符)
.*?- 任何字符
()- 后来可以使用的捕获组$1,$2...((.*?)- 捕获任何字符)
/- RegEx分隔符(可以是任何字符)

\*(.*?)\*- 匹配角色*,直到找到任何角色*