Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过javascript将*更改为斜体?_Javascript_Jquery - Fatal编程技术网

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

如何通过javascript将*更改为斜体?,javascript,jquery,Javascript,Jquery,单击按钮时,我正试图从用户输入文本区域将(显示)*更改为斜体样式。但是没有什么是没有错误的,我认为我的逻辑有点错误,但不能再计算了 var italic=0; $(“#btn”)。单击(函数(){ var val=$(“#usr”).val(); val.split(“”)forEach(函数(v,i){ var sts=/\*/g.test(v); 如果(sts){ 如果(斜体==1){ val.substr(0,i)+''+val.substr(i+1); 斜体=0; } 否则{ val.

单击按钮时,我正试图从用户输入文本区域将(显示)
*
更改为
斜体
样式。但是没有什么是没有错误的,我认为我的逻辑有点错误,但不能再计算了

var italic=0;
$(“#btn”)。单击(函数(){
var val=$(“#usr”).val();
val.split(“”)forEach(函数(v,i){
var sts=/\*/g.test(v);
如果(sts){
如果(斜体==1){
val.substr(0,i)+''+val.substr(i+1);
斜体=0;
}
否则{
val.substr(0,i)+''+val.substr(i+1);
斜体++;
}
}
});    
$(“#显示”).html(val);
});
#显示{
背景:#aaa;
宽度:30%;
高度:自动;
边框:1px实心#D;
}

插入
使用简单的
\*(.*)\*
将输出包装在
标记中:

$(文档).ready(函数(){
$('textarea').keyup(函数(){
$('#output').html($(this).val().replace(/\*(.*?\*/g,'$1'));
})
})

由于您正在执行
val.split(“”
”),因此
循环将循环每个字符,无需使用RegExp来测试值,您只需应用
v=“*”

我还将数据成员名称从
italic
更改为
italicTagOpened
,并通过
italicTagOpened=”控制其状态!斜体字

如上所述,您正在遍历每个字符,我还将有一个数据成员
output
来附加结果

这是我修改过的函数

var italicTagOpened = false;
$("#btn").click(function(){
  var val = $("#usr").val(),
      output = "";

  val.split("").forEach(function(v,i) {
    //var sts = /\*/g.test(v);
    if(v == "*"){
      if(italicTagOpened) output += "</i>";
      else output += "<i>";

      italicTagOpened = !italicTagOpened;
    } else output += v;
  });    
  $("#display").html(output);
});
var italicTagOpened=false;
$(“#btn”)。单击(函数(){
var val=$(“#usr”).val(),
输出=”;
val.split(“”)forEach(函数(v,i){
//var sts=/\*/g.test(v);
如果(v==“*”){
如果(斜体)输出+=“”;
else输出+=“”;
italicTagOpened=!italicTagOpened;
}否则输出+=v;
});    
$(“#显示”).html(输出);
});
你可以试穿一下
var italic=0;
$(“#btn”)。单击(函数(){
var val=$(“#usr”).val();
val=val.replace(/\*/g,'*');
$(“#显示”).html(val);
});
#显示{
背景:#aaa;
宽度:30%;
高度:自动;
边框:1px实心#D;
}

插入

它必须只能是
*
或可以是整个输入?插入此项后,您没有保存值更好,我喜欢它。顺便说一句,您能解释一下您的RegExp吗?我是新手,我必须对它有更多的了解。您的正则表达式将
*
替换为
*
,而不是在
*
Oops之间包装内容,很抱歉误解了他的意思