js截取字符串中一对中括号间的内容,该如何处理
js截取字符串中一对中括号间的内容
如[基本工资]+[奖金]-[保险]....这样一个字符串
如何将所有中括号内的内容截取出来,请高手指点。
------解决方案--------------------
先string.split("+")再子串的string.split("-")再string.split("[")还有string.split("]")
我知道这样...
不过用java的StringTokenizer("[基本工资]+[奖金]-[保险]","\\[\\]\\+\\-");一下就搞定
------解决方案--------------------
如[基本工资]+[奖金]-[保险]....这样一个字符串
如何将所有中括号内的内容截取出来,请高手指点。
------解决方案--------------------
先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."); } }