如何在html输入文本中正确显示引号

时间:2012-04-26 10:35:21

标签: javascript escaping

我需要在input type = text中显示一个类似value ='dummy'的字符串。这是正确的方法吗? 如果我使用< input type = text value ='+ escape(str)+“'>我得到的值%3D%27dummy%27,如果我没有逃脱,我在第一次引用后看不到任何内容。 我希望以正确的方式看到字符串

4 个答案:

答案 0 :(得分:2)

在这种情况下你需要使用unescape,试试

'<input type="text" value="'+unescape(str)+'">'

http://www.w3schools.com/jsref/jsref_unescape.asp

答案 1 :(得分:2)

我建议你不要使用字符串来定义值。而是选择DOM元素,并设置其值。

// Provided you select your input in the "input" variable
input.value = str

通过这种方式,您无需担心转义/取消转义。

答案 2 :(得分:1)

如果您的值被单引号括起来,那么:

"<input type='text' value='"+"John's".replace(/'/igm,"&apos;")+"' />";

如果你的值被双引号括起来,那么:

'<input type="text" value="'+'"one two"'.replace(/"/igm,"&quot;")+'" />';

如果你不确定:

'<input type="text" value="'+'"one two Jon\'s"'.replace(/"/igm,"&quot;").
   replace(/'/igm,"&apos;")+'" />';

答案 3 :(得分:0)

    <input type='text' value="value='dummy'">   </input>

编辑:抱歉,我意识到这不是你想要的,请参阅 gillesc 回答