0

我需要突出显示文章中的关键字或标签并将变量传递给 jQuery Array 我正在使用属性将值从 C# 传递到 java-script 我还需要格式化存储在数据库中的关键字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 + "',";

}

这段代码的问题是它,在最后一句话之后做广告我想知道避免,在最后一句话之后添加的最佳方法是什么

当前输出:“‘一’,‘二’,‘三’,‘四’,‘五’,‘六’,‘七’,”

期望的输出:“‘一’、‘二’、‘三’、‘四’、‘五’、‘六’、‘七’”

感谢您提供这方面的帮助

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 循环后,您可以简单地使用字符串类的子字符串函数删除 lastIndexOf(",") 。

或者

您可以在 for 循环中添加 if 语句,如果循环不在其最后一次迭代中,则会添加“,”。

于 2013-04-07T11:13:03.243 回答