我在JS中使用撇号(“'”)遇到了这个问题。我正在使用encodeURIComponent()对其进行编码,然后将(')替换为(%27),如下所示。
var request = encodeURIComponent(requestString).replace(“'”,“%27”);
但如果撇号带括号,则撇号不会被替换。
ex:(“)'”) ( “')”) ( “(”“)
即使撇号后跟一个数字,它也不会被替换。
有解决方法吗?
提前致谢。
Nilushi
答案 0 :(得分:3)
String.replace
方法接受字符串或正则表达式作为其第一个参数。当字符串作为第一个参数传递时,只替换第一个匹配项:
"'''''".replace("'", "%27"); // "%27''''"
您应该使用正则表达式以及g
标志;它取代了所有匹配:
"'''''".replace(/'/g, "%27"); // "%27%27%27%27%27"
答案 1 :(得分:1)
您需要指定/g
全局修饰符:
var request = encodeURIComponent(requestString).replace(/'/g, "%27");
示例:强>
var str = "(''')";
var request = encodeURIComponent(str).replace(/'/g, "%27");
console.log(request); // (%27%27%27)