0

記事内のキーワードまたはタグを強調表示し、jQuery 配列に変数を渡す必要があります。プロパティを使用して C# から Java スクリプトに値を渡します。これは機能します。また、データベースに保存されているキーワードをフォーマットする必要がありますone, two, three, four, five,six,seven

それを機能させるには、各キーワードを一' 重引用符または二重引用符で囲む必要があります"

JQuery

    function HighlightKeywords(keywords) {
        var el = $("body");
        $(keywords).each(function () {
            var pattern = new RegExp("(" + this + ")", ["gi"]);
            var rs = "<a href='search.aspx?search=$1'<span style='background-color:#FFFF00;font-weight: bold;background-color:#FFFF00;'>$1</span></a>";
            el.html(el.html().replace(pattern, rs));
        });
    }

HighlightKeywords(["<%= MyProperty %>]");

C# コード

string _sFinalList = null;

protected string MyProperty { get { return _sFinalList; } }
string sKewords = "one, two, three, four, five,six,seven";

List<string> lstKewords = sKewords.Split(',').ToList();
foreach (string list in lstKewords) // Loop through List with foreach
{
   _sFinalList += "'" + list + "',";

}

このコードの問題は、最後の単語の後に広告が表示されることです。最後の単語の後に,追加しないようにする最善の方法を知りたいです,

現在の OUTPUT : "'one', 'two', 'three', 'four', 'five','six','seven',"

望ましい OUTPUT : "'one', 'two', 'three', 'four', 'five','six','seven'"

この点で助けていただければ幸いです

4

4 に答える 4

3

C# では、次を使用しますString.Join()

List<string> lstKeywords = sKeywords.Split(',').ToList();

var quotedKeywords = lstKeywords.Select(s => "'" + s + "'");

string _sFinalList = string.Join(",", quotedKeywords);
于 2013-04-07T11:07:00.777 に答える
1

あなたが使用することができますString.Join()

string sKewords = "one, two, three, four, five,six,seven";
List<string> lstKewords = sKewords.Split(',').ToList();
var _partial = lstKewords.Select(x => "'" + x + "'");
Var _result = String.Join(",", _partial);
于 2013-04-07T11:05:11.483 に答える
1

String.Joinを使用できます

var result = string.Format("'{0}'", string.Join("','", yourList));
于 2013-04-07T11:06:59.993 に答える
0

for ループを完了した後、string クラスの部分文字列関数で lastIndexOf(",") を削除するだけです。

また

for ループに and if ステートメントを追加して、ループが最後の繰り返しでない場合は "," を追加することができます。

于 2013-04-07T11:13:03.243 に答える