我有一些字符串,例如:
str1 = "Point[A,B]"
str2 = "Segment[A,B]"
str3 = "Circle[C,D]"
str4 = "Point[Q,L]"
现在我想要一个函数,它给我“[”之后的字符和“]”之前的字符。我怎么能做出那样的东西?
我有一些字符串,例如:
str1 = "Point[A,B]"
str2 = "Segment[A,B]"
str3 = "Circle[C,D]"
str4 = "Point[Q,L]"
现在我想要一个函数,它给我“[”之后的字符和“]”之前的字符。我怎么能做出那样的东西?
试试这个...
var str = "Point[A,B]";
var start_pos = str.indexOf('[') + 1;
var end_pos = str.indexOf(']',start_pos);
var text_to_get = str.substring(start_pos,end_pos)
alert(text_to_get);
或者如果你有更多[A,C,D,B]
并且不想使用正则表达式:
var str1 = "Point[A,C,D,B]";
function extract(str1){
var a = str1.charAt(str1.indexOf('[')+1);
var b = str1.charAt(str1.indexOf(']')-1);
return [a, b];
//or
//a.concat(b); //to get a string with that values
}
console.log(extract(str1));
这是一种避免正则表达式的方法。
var str = "Point[A,B]";
var afterOpenBracket = str.split("[")[1]; // returns "A,B]"
var bracketContents = afterOpenBracket.split("]")[0]; // returns "A,B"
在那里,很简单!bracketContents
现在包含第一组括号之间的全部文本。
我们可以在这里停下来,但无论如何我会更进一步,拆分参数。
var parameters = bracketContents.split(","); // returns ["A", "B"]
您可以使用 match() 提取字符:
str.match(/\[(.*)\]/)[1]
更安全的方法是:
var matches = str.match(/\[(.*)\]/);
if(matches) {
var chars = matches[1];
}
你需要正则表达式来做到这一点
var matches = /\[(.*?)\]/.exec(str1);
alert(matches[1]);