替换html输入中的引号

Posted

技术标签:

【中文标题】替换html输入中的引号【英文标题】:Replacing quotes in a html input 【发布时间】:2018-10-09 04:43:41 【问题描述】:

我有一些来自模型的字符串,并正在从它们中进行 html 输入。或多或少如下:

@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
@
    this.Layout = "Views/Shared/Bootstrap.cshtml";

<input id="ModelDescription" type="hidden" value='@if(this.Model.Model.Description != null)

    @this.Model.Model.Description.Replace('a','b')
 ' />

这一切都很好。我已经设法在其中将 a 替换为 b(我继承的代码不是最稳定的),并且作为示例。

正如您可能已经收集到的那样,我们遇到了报价问题。一些用户会输入如下内容:

山姆的弟弟说“我不喜欢苹果”。

这当然意味着我们的输入变成:

<input id="ModelDescription" type="hidden" value='Sam's little brother said "I don't like apples".' />

意味着唯一被渲染的是

山姆

编辑 - Vikas 的回答给了我...

<input id="ModelDescription" type="hidden" value="@if(this.Model.Model.Description != null)

    @this.Model.Model.Description.Replace("&#34;","&#quot;")
 " />

【问题讨论】:

【参考方案1】:

使用双引号代替单引号(“”),如下所示:

<input id="ModelDescription" type="hidden" value="Sam's little brother said &#34;I don't like apples&#34;." />

【讨论】:

试过了。然后我们只得到“山姆的小弟弟说” 有没有办法让很多引号(单引号或双引号)替换为 " - 尝试用 ' 替换 a (我想是的)然后 Razor 发出了嘶嘶声。 试试html实体号(")【参考方案2】:

您可以使用@Html.Raw 和三元运算符来显示单引号和双引号,如下所示:

<input id="ModelDescription" type="hidden" 
       value="@Html.Raw(this.Model.Model.Description != null ?
              @this.Model.Model.Description.Replace('a','b') : "")" />

以上代码将生成 HTML 标记,如下例所示:

<input id="ModelDescription" type="hidden" value="Sam's little brother said &quot;I don't like apples&quot;.">

注意:最好使用@Html.HiddenFor(),而不是像这样手动设置value属性。

演示:.NET Fiddle

【讨论】:

以上是关于替换html输入中的引号的主要内容,如果未能解决你的问题,请参考以下文章

java中的空格和回车符怎样输入。

c语言中如何输入双引号

Pycharm中怎么给字典中的多个键-值对同时加上单引号

在informix中将一个引号符号替换为两个引号

python中,如何去掉字串自带的引号

python中的单引号,双引号和三双引号的区别