如何通过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之间包装内容,很抱歉误解了他的意思