使用包含双引号的字符串填充输入字段

时间:2011-03-21 20:49:55

标签: javascript escaping

我从包含双引号的服务器返回一个值。我需要使用值填充输入标记。

我尝试过使用escape(myVariable),但是将空格转换为%20等。 我想我可以写一个if / then表示如果字段中有双引号,那么使用value ='',但如果字段中有双引号和单引号,我该怎么办?

5 个答案:

答案 0 :(得分:13)

input.value = val.replace(/"/g, '"');

答案 1 :(得分:4)

将双引号替换为"

答案 2 :(得分:2)

  

我从中获得了一个价值   包含双引号的服务器   它

您将问题标记为“javascript”,因此我假设您通过ajax加载此服务器值。

如果已经分配了包含您的值的变量,则没有理由对任何内容进行编码。

这是一个示例脚本,它接受已经分配的变量并将其放入新的表单元素中。正如您所看到的,表单元素在同时显示单引号和双引号时完全没有问题。

<html>
<body>
<form id='myform'></form>
<script type='text/javascript'>
var myField = "James' answer is \"the best\"";

var i = document.createElement('input');
i.type = 'text';
i.name = 'testField';
i.value = myField;
document.getElementById('myform').appendChild(i);

</script>
</body>
</html>

答案 3 :(得分:0)

$("#input").val(unescape('"test " value" "'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
Test value: <input type="text"  id="input" />

答案 4 :(得分:0)

最佳解决方案是使用php语言中的htmlentities:

<input value="<?php echo htmlentities($value);?>">

在所有情况下均有效:

1)单引号

示例:朱莉娅的猫

2)双引号

示例:约翰的自行车

享受并分享代码以拯救他人的生命:)