May 13 2008

javascript 的正则选取

Category: 技术ssmax @ 12:48:46

今天客服那边催一个东西,开始搞搞,发现是url过长引起的问题,ie的url长度规定最长是2083个字节,超过就出错,反而用maxthon调用ie内核就没有这种限制,搞笑得很。

由于是iframe,最小改动就是用js把url拆开成动态form自动提交到target iframe里面了。

1、document.createElement  IE创建FORM之后的name不能变,一定要在参数里面把name做成HTML格式传过去,但是FIREFOX不支持HTML格式的参数,但是可以在FORM创建以后设定name,搞笑。。。INPUT对象就怎么玩都没问题,name可以之后再用setAttribute指定。还好form的name并不重要。

2、js的正则选取还没用过,查了一下有两种方式,记录一下:

var re = /([^&=]+)=([^&=]*)/g;
var arr;
while ((arr = re.exec(iframeurl_url.substr(iframeurl_url.indexOf(“?”) + 1))) != null)
     document.write(arr.index + “-” + arr.lastIndex + “:” + arr +”<br/>”);

arr返回就是一个数组了

arr[0]就是整个匹配

arr[1]…arr[9] 就是选取的内容

或者可以用 全局变量RegExp

RegExp.lastMatch = arr[0]

RegExp.$1 = arr[1]