想要在html中使用*的粗体文字

时间:2018-03-04 10:44:57

标签: javascript html replace

我有一个textarea,一个按钮和一个div

function showres() {
var text = document.getElementById('mytext');
var result = document.getElementById('resulthere');
result.innerHTML = text.value;
}
<textarea name="mytxt" id="mytext"></textarea>
<button onclick="showres()">Click Me</button>
<div id="resulthere"></div>

单击按钮
,显示div上textarea的值 如果我在textarea中输入两个*之间的字符串,我想在div上显示粗体文本 例如,我输入Hello *Mike*在div

中给Hello Mike

2 个答案:

答案 0 :(得分:2)

这可以使用Regex实现。

&#13;
&#13;
function showres() {
  var text = document.getElementById('mytext').value;
  var result = document.getElementById('resulthere');
  text.match(/\*([\w\s\d]+)?\*/g).forEach(function(match) {
    var str = match.substring(1, match.length - 1);
    text = text.replace(match, "<b>" + str + "</b>");
  });
  result.innerHTML = text;
}

document.getElementById('mytext').value = "this is *bold*";
showres();
&#13;
<textarea name="mytxt" id="mytext"></textarea>
<button onclick="showres()">Click Me</button>
<div id="resulthere"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用正则表达式匹配粗体模式:

var yourString = 'something left *bold text 123*';
var regex = /\*([\w\s\d]+)?\*/g;
var matches = yourString.match(regex);
// matches = ['*bold text 123*']

然后您可以使用替换功能来替换匹配的patern!

for (var i = 0; i < matches.length; i++) {
  yourString = yourString.replace(matches[i], yourBoldString);
}

您可以在https://regex101.com

测试您的正则表达式