我有一个函数可以显示用户访问的网址,例如https://stackoverflow.com/questions/78/of/103/uk/ask
我想使用带有 javascript 的正则表达式来捕获 url 的特定参数并将其替换为占位符文本。以上面的例子为例;
何时 https://stackoverflow.com/questions/7845w98439/uk/ask匹配时,将“/78/of/103/uk/”部分替换为“/task/of/total/country/”。我下面的代码似乎不起作用。有人可以告诉我哪里出错了吗?
JS:
const url_change = [
{expression: '/^/78/of/103/uk//i', value: '/task/of/total/country/'}
];
const urlParam = url_change.reduce(function(result, item) {
return element.classList.contains(item.expression) ? item.value : result;
}, '');
return urlParam(
toChange ? toChange.value : getElementText(element)
);
最佳答案
执行如下操作:
var str = "https://stackoverflow.com/questions/78/of/103/uk/ask";
const url_change = [
{expression: /\/78\/of\/103\/uk\//i, value: '/task/of/total/country/'}
];
// console.log(url_change[0].expression.test(str));
var result = str.replace(url_change[0].expression,url_change[0].value);
console.log(result);
符号/
是特殊字符(宣告Regex表达式的结束),需要一个标记\
引出,成为url中的/
,用于正则表达式!
关于javascript - 如何使用 javascript 中的正则表达式从 url 的参数中捕获字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52778049/