正在查找JavaScript函数以转义JavaScript字符串的字符串

正在查找JavaScript函数以转义JavaScript字符串的字符串,javascript,Javascript,我正在为这个(Java)代码寻找一个JavaScript等价物:org.apache.commons.lang.StringEscapeUtils.escapeJavaScript(String) 所以我可以在JavaScript中使用它,比如: loop ... foo = something; elem.setAttribute("onclick", "bar(event, 'this:" + used_here(foo) + "');"); foo = something else

我正在为这个(Java)代码寻找一个JavaScript等价物:
org.apache.commons.lang.StringEscapeUtils.escapeJavaScript(String)

所以我可以在JavaScript中使用它,比如:

loop ... foo = something;
  elem.setAttribute("onclick", "bar(event, 'this:" + used_here(foo) + "');");
  foo = something else;
repeat loop
因此,这里缺少的是使用的函数_here(),它将根据JavaScript字符串规则正确地转义其参数

是否有这样一个标准功能(主要浏览器支持)

--

错误重复的解释:这与HTML转义无关

So NOT THIS: " -> "
But this:    " -> \"

请原谅我的冒犯,但这就像是在问如何为旋转电话实现通讯录应用程序,或为信鸽实现反箭盔甲一样。:)在这个时代,您几乎没有理由在HTML属性中使用JavaScript作为字符串

elem.setAttribute("onclick", "alert('this:" + used_here(foo) + "');");
这些日子写得很清楚吗

let foo=`O'Brien&Dwayne酋长“岩石”约翰逊现在可以拥有他们想要的任何特殊角色了!`;
让elem=document.querySelector('button');
元素addEventListener('click',evt=>{
警报(foo);
});

点击我请求您原谅任何冒犯,但这就像询问如何为旋转电话实现通讯录应用程序,或为信鸽实现反箭盔甲一样。:)在这个时代,您几乎没有理由在HTML属性中使用JavaScript作为字符串

elem.setAttribute("onclick", "alert('this:" + used_here(foo) + "');");
这些日子写得很清楚吗

let foo=`O'Brien&Dwayne酋长“岩石”约翰逊现在可以拥有他们想要的任何特殊角色了!`;
让elem=document.querySelector('button');
元素addEventListener('click',evt=>{
警报(foo);
});

点击我我将
转义字符串
从转换为javascript:

函数escapeJavaStyleString(str、escapeSingleQuote、escapeForwardSlash){
如果(str==null){
返回“”;
}
常数sz=str.length;
放出='';
for(设i=0;i0xfff){
out+=“\\u”+ch.toString(16);
}否则如果(通道>0xff){
out+=“\\u0”+ch.toString(16);
}否则如果(通道>0x7f){
out+=“\\u00”+ch.toString(16);
}否则如果(ch<32){
开关(ch){
案例'\b':
out+='\\';
out+='b';
打破
案例“\n”:
out+='\\';
out+='n';
打破
案例'\t':
out+='\\';
out+='t';
打破
案例'\f':
out+='\\';
out+='f';
打破
案例'\r':
out+='\\';
out+='r';
打破
违约:
如果(ch>0xf){
out+=“\\u00”+ch.toString(16);
}否则{
out+=“\\u000”+ch.toString(16);
}
打破
}
}否则{
开关(ch){
案例'\'':
如果(转义单引号){
out+='\\';
}
out+='\'';
打破
案例'':
out+='\\';
out+=“”;
打破
案例“\\”:
out+='\\';
out+='\\';
打破
案例“/”:
if(转义向前斜杠){
out+='\\';
}
out+='/';
打破
违约:
out+=ch;
打破
}
}
}
返回;
}

log(escapeJavaStyleString('testing(“bleh”))我将
转义字符串
从转换为javascript:

函数escapeJavaStyleString(str、escapeSingleQuote、escapeForwardSlash){
如果(str==null){
返回“”;
}
常数sz=str.length;
放出='';
for(设i=0;i0xfff){
out+=“\\u”+ch.toString(16);
}否则如果(通道>0xff){
out+=“\\u0”+ch.toString(16);
}否则如果(通道>0x7f){
out+=“\\u00”+ch.toString(16);
}否则如果(ch<32){
开关(ch){
案例'\b':
out+='\\';
out+='b';
打破
案例“\n”:
out+='\\';
out+='n';
打破
案例'\t':
out+='\\';
out+='t';
打破
案例'\f':
out+='\\';
out+='f';
打破
案例'\r':
out+='\\';
out+='r';
打破
违约:
如果(ch>0xf){
out+=“\\u00”+ch.toString(16);
}否则{
out+=“\\u000”+ch.toString(16);
}
打破
}
}否则{
开关(ch){
案例'\'':
如果(转义单引号){
out+='\\';
}
out+='\'';
打破
案例'':
out+='\\';
out+=“”;
打破
案例“\\”:
出来