0

我的正则表达式非常粗糙,我可以用手来清理这个网址。如果有更简单的方法来解决这个问题,它不一定是正则表达式。

&EnrolledDate=date.struct&EnrolledDate_day=14&EnrolledDate_month=3&EnrolledDate_year=2013&

出于某种原因,Grails 项目中的日期选择器是三个单独的字段而不是一个漂亮的日历,但是好的,我们可以从 jQuery 端处理三个字段。

我需要这段 URL 转换成类似的东西

&EnrollDate=14-MAR-2013&

名称 EnrollDate 可以更改为任何名称,它只需要是从第一个“&”到第一个“=”的字符。

我也想不通为什么在 html 页面上,月份的选项被拼写出来,但是 jQuery 将它们序列化到索引位置?

有什么帮助吗?

4

1 回答 1

0

我不得不对变量部分和月份部分进行硬编码......希望它无论如何都会有所帮助......

            var str="&EnrolledDate=date.struct&EnrolledDate_day=14&EnrolledDate_month=3&EnrolledDate_year=2013&";
            var gmatches=str.match(/&Enrolled[^=]*?=[^&a-zA-Z]+/g);
            var string=[];
            int i;
            //This is for capturing the dates parts.
            for(i in gmatches){
                string.push(gmatches[i].match(/&Enrolled(.*?)=([^&][0-9]*)/i)[2]);
            }
            //for getting the months
            var months=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
            string[1]=months[(parseInt(string[1])-1)];
            var res="&name="+string.join('-')+"&";
            //res -> &name=14-Mar-2013&
于 2013-03-14T22:38:25.763 回答