<p> and </p>.
If they enter without then? を使用して、または使用せずにデータを入力するユーザーがいます。正規表現のようなものを使用するのが最も効率的でしょうか、それとももっと簡単な方法がありますか?
文字列の最初と最後だけに関心があり、その間のことは気にしないことに注意してください。
関連するすべてのトリミングと大文字と小文字のチェックを行ったと仮定します。
if (!s.StartsWith("<p>")) {
s = "<p>" + s;
}
if (!s.EndsWith("</p>")) {
s += "</p>";
}
あなたのニーズを理解していれば、次のような非常に簡単なものを使用します
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;
regex
あなたがチェックできる素晴らしい解決策かもしれません
^\s*<p>
行の先頭と
</p>\s*$
一致するものが見つからない場合は、手動で追加できます。
これを試して;
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.
}