首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

js截取字符串中一对中括号间的内容,该如何处理

2012-01-19 
js截取字符串中一对中括号间的内容如[基本工资]+[奖金]-[保险]....这样一个字符串如何将所有中括号内的内

js截取字符串中一对中括号间的内容
如[基本工资]+[奖金]-[保险]....这样一个字符串
如何将所有中括号内的内容截取出来,请高手指点。

[解决办法]
先string.split("+")再子串的string.split("-")再string.split("[")还有string.split("]")
我知道这样...
不过用java的StringTokenizer("[基本工资]+[奖金]-[保险]","\\[\\]\\+\\-");一下就搞定
[解决办法]

JScript code
var s = "[基本工资]+[奖金]-[保险]";var ret = splitX(s);for (var i = 0; i < ret.length; i++){    alert(ret[i]);}function splitX(s) {    var ret = new Array();    if (s == null || s == "")    {        return ret;    }    var idx1, idx2, i = 0;    while ((idx1 = s.indexOf("[")) > -1 && idx1 != s.length - 1)    {        idx2 = s.indexOf("]");        if (idx2 > idx1)        {            ret[i] = s.substring(idx1 + 1, idx2);            i++;            s = s.substring(idx2);        } else {            s = s.substring(idx1);        }    }    return ret;}
[解决办法]
用正则最简单,也最正规!
Java code
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test {  public static void main(String[] args) {    Pattern p = Pattern.compile("\\[(.*?)\\]");    String str = "[基本工资]+[奖金]-[保险]";    Matcher m = p.matcher(str);    while (m.find()) {      System.out.println(m.group(1));    }  }}
[解决办法]
JScript code
            function test(){                var reg = /\[(.*?)\]/gi;                var str = "[基本工资]+[奖金]-[保险]";                var tmp = str.match(reg);                if (tmp) {                    for (var i = 0; i < tmp.length; i++) {                        alert(tmp[i]); // 保留中括号                        alert(tmp[i].replace(reg, "$1")); // 不保留中括号                    }                } else {                    alert("no match.");                }            } 

热点排行