4

*JavaScript で正規表現を試しているように、の間のテキストを太字にしようとしていますが*bold*、なぜ機能しないのかわかりません。

var bold = /\*(.*?)\*/gim;
var replacedText = replacedText.replace(bold, function($0,$1){
    return $1?$0:'<b>' + $0 + '</b>';
});

皆さん、ありがとうございます。これが最終的な回答です

編集済み

var bold = /\*(.*?)\*/gim;
var replacedText = replacedText.replace(bold, function($0,$1){
    return $1 ? ('<b>' + $1 + '</b>') : $0;
});
4

2 に答える 2

5

正規表現はOKですが、あなたのロジックはそうではありません:

var replacedText = replacedText.replace(bold, function($0,$1){
    return $1 ? ('<b>' + $1 + '</b>') : $0;
});

$1条件は逆であり、いずれにせよ、代わりに置き換えるときに使用する必要があります$0(後者にはアスタリスクが含まれます)。

于 2012-07-13T07:35:25.977 に答える
1

何かのようなもの:

function makeBold(id) {

  var re = /(\*)([^*]*)(\*)/g;

  var el = document.getElementById(id);
  el.innerHTML = el.innerHTML.replace(re, '<b>$2</b>');
}

始める必要があります。

于 2012-07-13T07:37:24.790 に答える