保留字符串中的特殊字符(不间断)

时间:2017-02-23 14:30:00

标签: javascript

很难在标题中描述这个问题,因为一个例子可以理解我想要做的事情。

我有一个我要添加的JS对象:

jsTestObj = [ ]

在每次调用数据字符串时,我想添加一个键和一个值对:

var pushTestObj = { };
pushTestObj["myKey"] = "MyName";
pushTestObj["myValue"] = "I call myself "Joe""; // these strings may have apostrophes, quotes, or even comments that are legit
jsTestObj.push(pushTestObj);

我需要在这些字段中保留所有引号或括号(和注释,这也是可能的并且与JS注释匹配)。从某种意义上说,我正在寻找一种可能的函数(方法),只需将字符串包装成:

pushTestObj["myValue"] = wrapStringMethodToRetainCharacters(I call myself "Joe");

JS知道它的值是" myValue"并保留引号,撇号和注释,同时仍将其存储在字符串中。

逃脱角色

这适用于引号和撇号;怎么样评论。例如:

var pushTestObj = { };
    pushTestObj["myKey"] = "MyName";
    pushTestObj["myValue"] = "/* He's "different" */ Sometimes David; // these strings may have apostrophes, quotes, or even comments that are legit
    jsTestObj.push(pushTestObj);

2 个答案:

答案 0 :(得分:1)

如果您想保留特殊字符,请使用\转义它们。

以下是一个例子:

pushTestObj['myValue'] = 'I call myself \"Joe\"';

特殊字符始终需要转义。 转义字符将按原样放入字符串中。

请注意,如果没有语法错误,您的代码就不应该运行。

答案 1 :(得分:1)

看来你正在寻找逃避:

pushTestObj["myValue"] = "I call myself \"Joe\""; // these strings may have apostrophes or single quotes that are legit

pushTestObj["myValue"] = "/* He's \"different\" */ Sometimes David"; // these strings may have apostrophes, quotes, or even comments that are legit

字符串可以包含撇号或单引号,没有问题。但是,如果不进行转义,则无法在字符串文字中键入它们。

注释在字符串中没有特殊含义。

如果你有一个语法高亮的发短信,这真的有帮助,因为它会很快显示字符串的开始和结束位置。