【问题标题】:How to split and concatenate the string to get the following result using jquery如何使用jquery拆分和连接字符串以获得以下结果
【发布时间】:2014-05-19 11:04:07
【问题描述】:

我有以下字符串

var url="hrefpara1?##0##:##2##para2?##3##:##1##para3?##4##:##6##";

我有这样的数组

var a=[Arun,Nandha,Gopi,praveen,jack];

我需要以下字符串结果:

hrefpara1?##Arun##:##Gopi##para2?##Praveen##:##Nandha##para3?##jack##:####;

我怎样才能使用 javascript 获得这个。

【问题讨论】:

    标签: javascript jquery arrays html


    【解决方案1】:

    您可以为此使用正则表达式

    var url="hrefpara1?##0##:##2##para2?##3##:##1##para3?##4##:##6##";
    
    var a=["Arun","Nandha","Gopi","praveen","jack"];
    
    
    url = url.replace(/(##)([^#]*)(##)/g,function (match,prefix,index,suffix) {
        return (a[+index]) ?prefix+a[+index]+suffix : prefix+suffix;
    });
    
    
    console.log(url);
    

    【讨论】:

    • 工作正常。你能解释一下吗?
    • 我正在使用正则表达式来查找您的模式##digit##,感谢 \g 切换替换方法将找到此模式的所有出现。使用括号(##)([^#]*)(##)将模式分成三组,以便在回调函数中更好地参考,使返回更改的字符串,回调函数接收四个参数,第一个是整个匹配的模式,prefix保存第一组的值从模式 (##) 开始,index 代表 ([^#]*) 组,suffix 代表最后一个 (##) 组。
    • 在函数中,我只检查您的表中是否存在索引值的值,如果不存在,则返回默认模式,否则从表中返回值。我正在使用 +index 将字符串转换为 int
    • @Neophyte 你有什么问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2013-10-12
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    相关资源
    最近更新 更多