0

次の投稿に出くわしました正規表現を使用してツイート内の単語で顔文字を置き換えます c#ここで、スマイリーは解析され、カスタムテキストに置き換えられます:

static string ReplaceSmile(Match m) {
    string x = m.ToString();
    if (x.Equals(":)")) {
        return "happy";
    } else if (x.Equals(":(")) {
        return "sad";
    }
    return x;
}

static void Main() {
    string text = "Today is a sunny day :). But tomorrow it is going to rain :(";
    Regex rx = new Regex(@":[()]");
    string result = rx.Replace(text, new MatchEvaluator(ReplaceSmile));
    System.Console.WriteLine("result=[" + result + "]");
}

JavaScript 変数の文字列にスマイリーがあると言って、JavaScript で同じことを達成するのを手伝ってもらえますか? C# で行ったのと同じ動作を達成する方法は?

4

3 に答える 3

0

正規表現を使用したくない場合は、次のようにします。

var happy_replacement = "smile!";
var sad_replacement = "frown...";

var happy_replaced = ":) Sunshine and lollipops".replace(":)",happy_replacement);
var sad_replaced = ":( Snips and snails".replace(":(",sad_replacement);
var both_replaced =
    ":( and :)"
        .replace(":(",sad_replacement)
        .replace(":)",happy_replacement);

編集:両方を行う機能。

function replace_all(raw) {
    var happy_replacement = "smile!";
    var sad_replacement = "frown...";
    var replaced =
        input
            .replace(":(",sad_replacement)
            .replace(":)",happy_replacement);
    return replaced;
}

var output = replace_all(":) and :(");
于 2013-06-10T21:14:09.853 に答える