JS如何从两个特殊字符之间选择一个字符串?

时间:2017-01-25 22:04:57

标签: javascript string substring

我有一个字符串格式类似于___<test@email.com>____,其中下划线是我不需要的东西,但长度不变。我需要选择并存储括号之间的内容。

我的问题是我看到的所有子字符串解决方案都在字符串中的硬整数位置运行。但是我要选择的子字符串的开头和结尾(括号)将永远不会相同。

所以我想如果我可以使用某些东西来找到括号的位置,那么将其提供给可行的子串解决方案。但是我发现识别特殊字符的所有方法只报告是否有特殊字符,而不是它们的位置。

提前致谢!

3 个答案:

答案 0 :(得分:2)

这是一个应该让你上路的正则表达式。

let string = "asdf asdf asdf as <thing@stuff.com> jl;kj;l kj ;lkj ;lk j;lk";
let myMatches = string.match(/<.*>/g);
let myMatch = myMatches[0].slice(1).slice(0,-1);

.match函数返回一组匹配项,因此您可以找到多个<stuff>条目。

这可能是一种没有切片的方法,但这是我现在所拥有的。

答案 1 :(得分:2)

基于this answer

var text = '___<test@email.com>____';

var values = text.split(/[<>]+/);

console.log(values); // your values should be at indexes 1, 3, 5, etc...

答案 2 :(得分:0)

使用正则表达式:

var myRe = /<(.*)>/g;
var myArray = myRe.exec("____<asdf>___");
if (myArray)
    console.log(myArray[1]);

正则表达式测试here

JSFiddle测试here