将单引号和双引号的值附加到文本框

时间:2013-06-26 06:57:11

标签: javascript jquery html regex

我需要将结果数据集中的值附加到可能具有input等任何特殊字符的*^&$#>,'"。问题是我无法追加整个{{1}进入var

请检查this fiddle。我错过了什么东西?

我不能在不使用input.find this one的情况下执行此操作吗?

3 个答案:

答案 0 :(得分:3)

这是因为你要连接字符串,这不会考虑特殊字符的转义。您应该使用.val设置值,以便正确转义值。此外,正则表达式是不必要的。

$(document).ready(function(){
    var test= "this is vicky\"s \"s 's 's \"s \"S";

    alert(test);

    var input = $("<input style='width:700px;' id='testbox'></input>").val(test);

    $("#test").html("hey this is ").append(input);

});

请参阅updated test case on jsFiddle

答案 1 :(得分:2)

因此,为了在不使用.find或单独附加var的情况下解决此问题,我找到了一个简单的解决方案。我只需要将single quote'”替换为其iso latin code &#39;和其他特殊字符及其各自的代码,然后在.html中使用该变量

var something= "this is vicky\"s \"s 's 's \"s \"S";
test=something.replace(/'/g,"&#39;").replace(/"/g,'\\"');
$("#test").html("hey this is <input id='testbox' value='"+test+"'></input>");

查看this jsfiddle

答案 2 :(得分:1)

我尝试了很多事情,终于成功了:

var getClinician = row.ClinicianName;
getClinician = getClinician.replace(/"/g, "&quot;");

var Clinician = '<td align=""><input type="text" id="txt_Clinician_' + row.ScheduleID + '" value="' + getClinician + '"  />';