我怎么能改变*斜体javascript
How can I change * to italic by javascript?
当按钮被点击时,我试图改变(显示)*
到italic
样式从用户输入文本区。但是没有什么工作是没有错误的,我认为我的逻辑有点错,但不能再计算了!!
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);
});
#display {
background: #aaa;
width: 30%;
height: auto;
border: 1px solid #ded;
}
<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>
使用简单的'*(.*?)'*
在<i>
标签中包装输出:
$(document).ready(function() {
$('textarea').keyup(function() {
$('#output').html($(this).val().replace(/'*(.*?)'*/g, '<i>$1</i>'));
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea></textarea>
<div id="output"></div>
正则表达式解释:
'*
-字面*
(*
在RegEx中表示任何字符).*?
-任意字符()
-捕获组,以后可以与$1
, $2
…((.*?)
-捕获任意字符)/
- RegEx分隔符(可以是任何字符
'*(.*?)'*
-匹配字符*
,比任何字符直到找到*
由于您正在执行val.split("")
, .each
循环正在循环每个字符,并且没有必要使用RegExp来测试值,您可以简单地应用v == "*"
我还将数据成员名从italic
更改为italicTagOpened
,并通过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);
});
你可以试试https://jsfiddle.net/uyjqerg4/1/
var italic = 0;
$("#btn").click(function(){
var val = $("#usr").val();
val = val.replace(/'*/g, '<i>*</i>');
$("#display").html(val);
});
#display {
background: #aaa;
width: 30%;
height: auto;
border: 1px solid #ded;
}
<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>
你可以使用javascript替换函数,它的第一个参数可以接受正则表达式。反斜杠(')用于转义(因为regex中的*与*的含义不同),g代表'global'。
相关文章:
- 如何使用手柄呈现斜体/粗体文本
- javascript:查找/替换regexp帮助-粗体、斜体和特定字符
- TinyMCE 将另一个事件添加到粗体和斜体按钮
- 如何使钛文本区域中的单词加粗或斜体
- 最后一个斜杠 JavaScript RegEx 之后的所有字符
- 如何使用 ExtendScript 从 InDesign 文档的所有脚注引用中删除斜体和粗体样式
- html(或 asp.net)文本框中的斜体和普通文本
- 使用 Perl 在 Twitter 上发布斜体
- 织物 js 粗斜体不起作用,因为 JSON 中的字体样式对象
- 在谷歌脚本中创建的电子邮件正文上应用下划线,粗体,斜体等
- 铬中的 CKEDITOR 在光标位置添加“?”标记,同时应用任何样式(粗体/斜体)而不选择
- 平滑地从普通文本淡入斜体文本
- 斜体字在Javascript中不起作用'alert()'方法
- 尝试使用JavaScript查找关键字并将其斜体
- 在jQuery和/或javascript中检索页面上的所有斜体文本片段
- 我怎么能改变*斜体javascript
- 使用Javascript使文本斜体
- 如何设置字体样式"斜体"使用javascript
- 如何使输出的一部分以斜体 - JavaScript
- 如何在javascript中使所选文本加粗/斜体/下划线