1

<p> and </p>.If they enter without then? を使用して、または使用せずにデータを入力するユーザーがいます。正規表現のようなものを使用するのが最も効率的でしょうか、それとももっと簡単な方法がありますか?

文字列の最初と最後だけに関心があり、その間のことは気にしないことに注意してください。

4

5 に答える 5

4

関連するすべてのトリミングと大文字と小文字のチェックを行ったと仮定します。

if (!s.StartsWith("<p>")) {
    s = "<p>" + s;
}

if (!s.EndsWith("</p>")) {
    s += "</p>";
}
于 2013-08-28T06:34:45.747 に答える
3

あなたのニーズを理解していれば、次のような非常に簡単なものを使用します

var s = your_user_string;
if (!s.StartsWith("<p>") && !s.EndsWith("</p>"))
  s = String.Format("<p>{0}</p>", s);

OPコメントの後に更新:

var s = !input.StartsWith("<p>", StringComparison.InvariantCultureIgnoreCase) && 
        !input.EndsWith("</p>", StringComparison.InvariantCultureIgnoreCase)
        ? String.Format("<p>{0}</p>", input)
        : input;
于 2013-08-28T06:33:44.090 に答える
2

regexあなたがチェックできる素晴らしい解決策かもしれません

^\s*<p>

行の先頭と

</p>\s*$

一致するものが見つからない場合は、手動で追加できます。

于 2013-08-28T06:34:32.903 に答える
-1

これを試して;

string input = "UserInput";

                if (input.StartsWith("<p>") == true && input.EndsWith("</p>") == true)
                {
                    //Nothing to do here.
                }
                else if (input.StartsWith("<p>") == true && input.EndsWith("</p>") == false)
                {
                    input = input + "</p>";//Append </p> at end.
                }
                else if (input.StartsWith("<p>") == false && input.EndsWith("</p>") == true)
                {
                    input = "<p>" + input;//Append </p> at beginning.
                }
                else if (input.StartsWith("<p>") == false && input.EndsWith("</p>") == false)
                {
                    input = "<p>" + input + "</p>";//Append </p> at end and <p> at beginning.
                }
于 2013-08-28T06:38:30.670 に答える