替换js中函数的参数

来源:互联网 发布:知世图片 编辑:程序博客网 时间:2024/06/18 11:28
  1. import java.util.regex.Matcher;
    import java.util.regex.Pattern;
  2. /**
  3.      * 改变javascript中 iPanel.pageWidgets.create(,,,,)函数的第二个参数
  4.      * @author huangfei
  5.      * @create 2008-11-23 上午11:50:48
  6.      * @since 
  7.      * @param jsFileStr
  8.      * @param modulType 该函数的第一个参数值等于modulType的值时才被改变
  9.      * @param realVaule 改变后的真实值
  10.      * @return
  11.      */
  12.     public String replaceParameterInJs(String jsFileStr,String modulType,String realVaule){
  13. //      modulType="nvodFirst_ad0";
  14.         realVaule="/""+realVaule+"/""//"/"4584891248.htm/"";
  15.         /**
  16.          * regex for: iPanel.pageWidgets.create("nvodFirst_ad0", "ui://nvodFirst_ad0.htm", 3, 0)
  17.          * is:   "(iPanel.pageWidgets.create//(//s*/"([//w|_]*)/"//s*,//s*/"ui://([//w|_|//.]*)/"//s*,[^)]*//))"; 
  18.          */
  19.         String regex4function = "(iPanel.pageWidgets.create//(//s*/""+modulType+"/"//s*,//s*/"ui://([//w|_|//.]*)/"//s*,[^)]*//))"
  20.         Pattern pattern4function = Pattern.compile(regex4function);
  21.         Matcher matcher4function = pattern4function.matcher(jsFileStr);
  22.         ArrayList realStrList = new ArrayList();
  23.         while(matcher4function.find()){
  24.             String realStr = matcher4function.group(1);
  25.             System.out.println("find relative function:"+realStr);
  26.             String regex4Parameter="/"ui://([//w|_|//.]*)/"";
  27.             Pattern pattern4Parameter = Pattern.compile(regex4Parameter);
  28.             Matcher matcher4Parameter = pattern4Parameter.matcher(realStr);
  29.             realStr=matcher4Parameter.replaceAll(realVaule);
  30.             realStrList.add(realStr);
  31.         }
  32.         matcher4function = pattern4function.matcher(jsFileStr);
  33.         int i = 0;
  34.         while(matcher4function.find()){
  35.             jsFileStr = matcher4function.replaceFirst((String)realStrList.get(i));
  36.             i++;
  37.             matcher4function = pattern4function.matcher(jsFileStr);
  38.         }
  39.         return jsFileStr;
  40.     }
原创粉丝点击