预填充的 html 字段中的引号

Posted

技术标签:

【中文标题】预填充的 html 字段中的引号【英文标题】:quotes in prepopulated html fields 【发布时间】:2011-01-06 04:31:29 【问题描述】:

如果您想使用包含双引号 (") 的字符串预填充 html 文本字段, 您需要对其进行 html 编码,如 " ,不幸的是,字符串 '"abc"' 编码为 ""abc""与表单一起提交给服务器,服务器无法将其与字符串“”abc“”区分开来按字面意思输入。

使用 ' 分隔文本字段值属性不是一个可用选项,因为输入字段是从 javascript 填充的。用 \ 或 \ 转义 " 不起作用 (Firefox);Javascript 允许转义,但 html 渲染器只会将 \ 和 " 视为不同。

是否有一种解决方法可以在预填充的 html 字段中包含 ",同时允许输入与 html 实体名称匹配的原始字符串?

【问题讨论】:

【参考方案1】:

如果您在文本框中输入"abc",它将作为%22abc%22 提交到服务器(但无论您使用的任何语言/框架都应该透明地将其解码回"abc")。

如果您想使用"abc" 预先填充文本框,那么您可以使用"abc" 作为value 属性。这也将作为%22abc%22 提交给服务器。

如果您在文本框中输入"abc",它将作为%26quot%3Babc%26quot%3B 提交到服务器(但无论您使用的任何语言/框架都应透明地将其解码回"abc")。

如果您想使用"abc" 预先填充文本框,那么您可以使用"abc" 作为value 属性。这也将作为%26quot%3Babc%26quot%3B 提交给服务器。

【讨论】:

【参考方案2】:

假设您有字符串""Hello World"",并且您想将其放入HTML 文本输入中。为此,您需要转义所有 HTML 实体。它看起来像这样:

<input type="text" value="""Hello World""" />

提交后,服务器端会得到字符串""Hello World""

【讨论】:

以上是关于预填充的 html 字段中的引号的主要内容,如果未能解决你的问题,请参考以下文章

PHP输出单引号和双引号作为输入元素的值

带有双引号的 JAVASCRIPT var 到 PHP 并返回用于自动填充

mysql反引号和引号的用法

正则表达式删除由双引号划定的 CSV 字段中的双引号

Django自动将文本字段中的双引号转换为单引号

js怎么在引号里写函数