使用正则表达式获取字符串的一部分

时间:2014-01-02 15:33:50

标签: javascript regex string search

我有一个字符串,可以有如下文字:

'some text user#t12# some text'
'username#John# some text'
'some text usersurname#Malks#'
'userphoto#1.jpg#'

如何在#和#符号之间获取文字?

要搜索的字符串部分的典型结构 - type#variable#

type JS变量 type,它位于第一个#之前。

variable是我需要提供的文字。

我正在搜索一个返回variable的正则表达式,它位于#...#之间。

问题是,我对regexp不太熟悉,你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

你需要使用捕获组,基本上在正则表达式中,括号中的任何内容都将成为cpature组的一部分,在这种情况下,您希望捕获两个哈希值之间的所有字符。任何数量的字符正则表达式都是。*所以这就是你要在两个哈希值之间捕获的内容。一旦执行它,你会发现匹配在数组中是第二个(第一个是带有哈希的字符串。

var type = "";
var myString = "some text user#t12# some text";
var myRegexp = new RegExp(type+"#(.*)#","g");
var match = myRegexp.exec(myString);
alert(match[1]);  // t12

哈希之间的任何其他匹配将匹配[2] ..匹配[n]