我想比较两个字符串。每个index
中是否存在差异,我想用红色(如果不匹配)或绿色(如果匹配)为该特定的char
上色。
<li>
@for (int i = 0; i < item.AnswersList.Count; i++)
{
var answerArray = item.AnswersList[i].Output.ToArray();
var outputArray = item.OutputList[i].Output.ToArray();
for (int j = 0; j < answerArray.Length; i++)
{
if (answerArray[j] == outputArray[j])
{
@Html.Raw( How to print colorful char here?);
}
}
}
</li>
彩色的string
必须在<li>
标签中排成一行。
编辑:
我对此代码进行了修改:
<div style="color: green;">
@Html.Raw(outputArray[j])
</div>
但是我得到这样的输出:
如何在<li>
标签中使它成为一个单词?
答案 0 :(得分:1)
尝试以下操作:
<li style="display: flex;>
@for (int i = 0; i < item.AnswersList.Count; i++)
{
var answerArray = item.AnswersList[i].Output.ToArray();
var outputArray = item.OutputList[i].Output.ToArray();
for (int j = 0; j < answerArray.Length; i++)
{
if (answerArray[j] == outputArray[j])
{
<span style="color: green;">
...
</span>
}
}
}
</li>
答案 1 :(得分:1)
我希望你需要这个:
<li>
@for (int i = 0; i < item.AnswersList.Count; i++)
{
var answerArray = item.AnswersList[i].Output.ToArray();
var outputArray = item.OutputList[i].Output.ToArray();
for (int j = 0; j < answerArray.Length; i++)
{
bool isMatch = answerArray[j] == outputArray[j];
<div style="color: @(isMatch ? "green" : "red");">
@Html.Raw(outputArray[j])
</div>
}
}
</li>
UPD :如果一行中需要所有字符,则使用span
代替div
。
UPD2:(尝试,但没有新行):
<span style="color: @(isMatch ? "green" : "red");margin:0;padding:0">@Html.Raw(outputArray[j])</span>
答案 2 :(得分:1)
这应该工作完美。只需确保您在final String REG_PATTERN_VALID_DECIMAL_NUMBER = "((?<!\\S)-?\\d+(?:\\.\\d+)?(?!\\S))|.";
标签周围不留空格,就像这样:
<span>