javascript - 如何使用 javascript 中的正则表达式从 url 的参数中捕获字符串

标签 javascript regex

我有一个函数可以显示用户访问的网址,例如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/

相关文章:

javascript - 取消分割两个数组 Javascript

regex - SPARQL:组合和排除正则表达式过滤器

regex - sed 或 awk 正则表达式,在分号后停止匹配

javascript - Grunt复制/ Ant 模式/省略变量目录

尽管调试工具匹配,但 Java 正则表达式不匹配

javascript - AngularJS:ng-repeat 跨多个 div

javascript - 使用 JavaScript 将 svg 导出为 png 或其他具有样式的图像

javascript - 分割逗号分隔值并将它们添加到数组中

javascript - 如何克隆 jQuery 元素及其数据

c# - 正则表达式在 C# 中检测超链接的问题