我有一个字符串,可以有如下文字:
'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不太熟悉,你能帮帮我吗?
答案 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]