使用javascript在双引号中添加条
保持平等: 仅在HTMLBody中使用invert使其与\保持大致相同:使用javascript在双引号中添加条,javascript,Javascript,保持平等: 仅在HTMLBody中使用invert使其与\保持大致相同: 我想把\var放在里面,而不能把函数HTMLBody放在引号里\n只有你在函数HTMLBody里面有什么在var里 什么是函数反转?使用regex?既然您已经声明代码段至少部分是从PHP生成的,那么您最好修复代码,以便正确生成代码段,而不是事后尝试修复结果 [编辑]例如,如果您从以下内容开始: $functionName='HTMLBody'; $arguments=数组'Loves'; 每个$argument都可以使用:
我想把\var放在里面,而不能把函数HTMLBody放在引号里\n只有你在函数HTMLBody里面有什么在var里
什么是函数反转?使用regex?既然您已经声明代码段至少部分是从PHP生成的,那么您最好修复代码,以便正确生成代码段,而不是事后尝试修复结果 [编辑]例如,如果您从以下内容开始: $functionName='HTMLBody'; $arguments=数组'Loves'; 每个$argument都可以使用: $encodedArgs=array_map'json_encode',$arguments; 然后,组合$functionName和$encodedArgs,并再次编码为JSON以生成代码的字符串文字: echo json_编码$functionName.'''。内爆“,”,$encodedArgs.”; 这应反映以下内容: 对于注释中的示例,起始值为: $functionName='functionjsalert'; $arguments=数组'types here','values here'; 这将导致: 要使用正则表达式实现这一点,字符串应该是有点正则的 因此,如果它总是遵循带有单个字符串参数的函数调用的格式,尽管有太多未转义的引号: 函数名字符串值 注意:如果代码字符串包含多个参数,则这是不可能的。没有可靠的方法来识别a是值的一部分还是应该限定一个值 但是,以下措施应该有效:
"functionjsalert( \"type\\\"s\\\" here\", \"value\\\"s here\" )"
第一个RegExp匹配3个单独的部分:
\w+\s*\\s*\匹配函数名、左括号和第一个双引号
pre==='HTMLBody'
*?匹配上一组和下一组之间的任何内容
sub===‘爱’
\\s*\\s*;匹配最后一个双引号、右括号和分号
post==';'
然后,第二个RegExp只需在中间组sub中搜索any,并在它们前面放置一个\即可
而且,如果invert已经存在并用于其他用途,则根据需要重命名此函数。说什么?编辑你的评论。。try English我想在函数HTMLBody中放入\var,但不能在函数HTMLBody中放入\n仅在函数HTMLBody中放入\n您想在代码语句或字符串的值/内容中交换引号吗?眼睛!就在HTMLBody内部,使用:invert'HTMLBody Loves;';HTMLBody in reverse to\您是说只替换Loves to Love\s中的双引号,而不替换包含此字符串的双引号吗?Ops:var myfunction='num_jsfunctiondiv,text Loves hum';evalmyfunction;。。Error=num_jsfunctiondiv\,\text love\s hum';//不应在\处出错@Guillhermes.Mendes正如我提到的,有不止一个论点,这是不可能的。除了第一个和最后一个,其他的看起来都一样。因此,无法可靠地确定它们是应该对字符串进行分隔还是作为字符串的一部分进行转义。而且,逗号还不足以作为指导-,,,,可以是1到3个参数。will?var logjs='functionjsalerttypes在这里,values在这里;';evalconvertlogjs;//eval=functionjsalerttype\s此处,value\s此处@Guillhermes,Mendes再说一次,这件事发生后是不容易做到的。但是,我已经更新了答案的第一部分,以演示如何完成PHP所需的输出。我的兄弟,解释:www.varn.tk/17
var = invert ('HTMLBody ("Love\"s ");');
"HTMLBody( \"Love\\\"s \" );"
"functionjsalert( \"type\\\"s\\\" here\", \"value\\\"s here\" )"
function invert(snippet) {
return snippet.replace(/(\w+\s*\(\s*\")(.*?)(\"\s*\)\s*;)/, function (_, pre, sub, post) {
return pre + sub.replace(/(")/g, '\\$1') + post;
});
}
var result = invert('HTMLBody ("Love"s ");');
console.log(result); // HTMLBody ("Love\"s ")