所以我有一个在其他浏览器上运行良好的代码,但在 iPhone 和 Safari 浏览器上不起作用。当我调试时,它显示以下代码“无效的正则表达式:没有可重复的内容”。
function getURLParameter(a) {
a = (new RegExp("[?|&]" + a + "=([^&;]+?)(&|#|;|$)")).exec(location.search);
if (null == a) return null;
a = a[1];
a = a.replace(/+/g, "%20");
return decodeURIComponent(a)
}
如果您能提供任何帮助,我们将不胜感激。
最佳答案
你的问题来自于a = a.replace(/+/g, "%20");
,+
表示重复一个字符一次或多次,但它前面没有字符,如果你想用“%20”替换“+”,你可以简单地调用 a.replace("+", "%20")
或正则表达式版本 a.replace(/\+/g, "%20")
抱歉,a.replace("+", "%20")
只替换第一个“+”,所以你需要 a.replace(/\+/g, "%20")
将所有“+”替换为“%20”
关于javascript - 正则表达式无效 : nothing to repeat Safari Console Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58296429/