繁体   English   中英

JavaScript在[和之前]之后在字符串中出现字符

[英]JavaScript get character in sting after [ and before ]

我有一些像这样的字符串:

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);

您可以使用match()提取字符:

str.match(/\[(.*)\]/)[1]

一种更安全的方法是:

var matches = str.match(/\[(.*)\]/);
if(matches) {
   var chars = matches[1];
}

您需要使用正则表达式

var matches = /\[(.*?)\]/.exec(str1);
alert(matches[1]);

这是一种避免正则表达式的方法。

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"]

或者,如果您有更多的[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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM