我的字符串${field.value}
有值
'<table id="tblUserList">
<tbody>
<tr>
<td style="padding: 10px;">some test' and "xyz"</td>
</tr>
</tbody
</table>'
我试过的是
escapestring = '${field.value}'
escapestring.replace("'", "\'");
document.getElementById("tblUserList").innerHTML = escapestring ;
错误,它无法正常工作
Uncaught SyntaxError: Invalid regular expression flags
我想在some test' and "xyz"
我正在尝试制作string safe for inserting into HTML table.
更新:值来自服务器,我无法跳过字符串中的HTML元素
JSFIDDLE:https://jsfiddle.net/e3jehrc5/1/
感谢任何帮助。
答案 0 :(得分:0)
在这里读行......
escapestring = '${field.value}'
我猜这里有一些服务器端模板语言正在填充${field.value}
的值。第一:你不应该动态生成Javascript,通过AJAX等获取这个HTML片段会更好。
话虽如此,由于您的服务器在这里动态生成Javascript源代码,因此需要注意生成语法上有效的代码。现在你天真地将一个字符串粘贴到另一个字符串中,而不考虑你所生成的语法要求。你无法在Javascript中修复此问题,因为Javascript本身已经无效。您的模板语言需要将字符串正确编码为有效的Javascript。如何做到这完全取决于你的模板系统;这是一个PHP示例:
var html = <?= json_encode($field->value); ?>;
这里的JSON编码会产生有效的Javascript文字,这就是你在这里寻找的所有内容。
另见The Great Escapism (Or: What You Need To Know To Work With Text Within Text)。
答案 1 :(得分:-2)
使用此
import re
query = 'CREATE TABLE afg_temp (tadm1_code INTEGER NOT NULL, tadm1_name VARCHAR(10) NOT NULL, test VARCHAR(4));'
print re.sub(r'VARCHAR\([0-9]*\)','VARCHAR(254)',query)