【问题标题】:Populate an input field with a string that contains a double quote使用包含双引号的字符串填充输入字段
【发布时间】:2011-03-21 20:49:55
【问题描述】:

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

我尝试过使用 escape(myVariable),但这会将空格转换为 %20 等。 我想我可以写一个 if/then 来说明字段中是否有双引号,然后使用 value='',但是如果字段中同时有双引号和单引号我该怎么办?

【问题讨论】:

    标签: javascript escaping


    【解决方案1】:
    input.value = val.replace(/"/g, '"');
    

    【讨论】:

      【解决方案2】:

      将双引号替换为"

      【讨论】:

        【解决方案3】:

        我从 包含双引号的服务器 它。

        您将您的问题标记为“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>
        

        【讨论】:

        • 詹姆斯,我真的很喜欢这个答案。
        【解决方案4】:

        $("#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" />

        【讨论】:

          【解决方案5】:

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

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

          在所有情况下都有效:

          1) 单引号

          示例:朱莉娅的猫

          2) 双引号

          示例:约翰的自行车

          享受和分享代码以挽救他人的生命:)

          【讨论】:

            猜你喜欢
            • 2011-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-03-17
            • 2018-03-20
            • 1970-01-01
            • 2014-09-26
            相关资源
            最近更新 更多