Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 搜索并替换特定图案_Javascript - Fatal编程技术网

Javascript 搜索并替换特定图案

Javascript 搜索并替换特定图案,javascript,Javascript,我有以下要求: 我有一个url作为 var url = '/test/mybin/processes/{testName}/test?id={testId}'; url中可以包含任意数量的{}。让我们假设上面它在两个位置{testName}和{testId}有{}。它可以有任意数量的这样的参数 我需要用实际值替换这些参数的值。 我需要首先知道每个{}中属性的名称,并在加载url之前用实际值替换它们 假设在上面的例子中,我必须首先提取{}中每个属性的名称,并用实际值替换它们 在我的方法中: te

我有以下要求:

我有一个url作为

var url = '/test/mybin/processes/{testName}/test?id={testId}';
url中可以包含任意数量的{}。让我们假设上面它在两个位置{testName}和{testId}有{}。它可以有任意数量的这样的参数

我需要用实际值替换这些参数的值。 我需要首先知道每个{}中属性的名称,并在加载url之前用实际值替换它们

假设在上面的例子中,我必须首先提取{}中每个属性的名称,并用实际值替换它们

在我的方法中:

testName=Test和testId=1

因此,我希望url值为

'/test/mybin/processes/Test/test?id=1'.
你能告诉我实现这一目标的最佳方法吗


谢谢,塔尼

像这样的东西应该可以奏效:

var obj={testName:mytest,testId:1}; var url='/test/mybin/processs/{testName}/test?id={testId}'; var regex=/{.*?}/g; var replaced=url.replaceregex,functionm,p1{ 返回obj[p1]; }; 更换警报 将正则表达式与

function f(map,url) {
    var pattern = /{(\w+)}/g;
    var replacer = function(a,b){
        return map[b];
    };
    var o = url.replace(pattern,replacer);
    return o;
}

我尝试使用regex var regExp=/\{[^\}]*\};去拿火柴。但它只给了我第一个匹配。你错过了/g标志