如何替换所有“"使用javascript

How to replace all "?" using javascript

本文关键字:quot javascript 使用 何替换 替换      更新时间:2023-09-26

我想将所有"?"替换为"%3F",但它不起作用。Firebug控制台显示:"SyntaxError: invalid regular expression flag %"

我的代码:

var q;
var replacer = new RegExp("?", "%3F");
q = (document.getElementById("q").value).replace(replacer, "");

试试这个:

"sample?".replace(/[?]/g,'%3F')

new RegExp使用字符串作为第二个参数创建正则表达式修改器(g|i|m)

如果你想使用新的RegExp,那么你需要这样做,而不是像这样使用new RegExp("[?]", "g");

var rg = new RegExp("[?]", "g");
"sample?".replace(rg,'%3F');

RegExp构造函数的第二个参数是一个字符串,其中包含要应用于表达式的标志。使用全局(g)标志替换所有实例。此外,?是正则表达式中的一个特殊字符,因此必须使用'对其进行转义。

试试这个:

var replacer = new RegExp("''?", "g");
q = (document.getElementById("q").value).replace(replacer, "%3F");

或者使用类似这样的regex文字:

var replacer = /'?/g;
q = (document.getElementById("q").value).replace(replacer, "%3F");

如果您想转义所有特殊的URI字符,还应该考虑使用encodeURIComponent(或者可能是encodeURI)方法:

q = encodeURIComponent(document.getElementById("q").value);

听起来像是在对要在URL中传递的数据进行编码,所以您可能实际上想要encodeURIComponent

encodeURIComponent('?') //=> "%3F"

当然,这也适用于许多其他特殊的角色。

encodeURIComponent('hello?foo#bar') //=> "hello%3Ffoo%23bar"
var newelem = oldelem.split("?").join("%3F")

这将完成

怎么样

var q = encodeURIComponent(document.getElementById("q").value);
var find = "''?";
var replacer = new RegExp(find, 'g');
q = (document.getElementById("q").value).replace(replacer, "%3F");

Eidt:忘记了"?"前面的"''''"