Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用regexp获取字符串的一部分_Javascript_Regex_String_Search - Fatal编程技术网

Javascript 使用regexp获取字符串的一部分

Javascript 使用regexp获取字符串的一部分,javascript,regex,string,search,Javascript,Regex,String,Search,我有一个字符串,可以有如下文本: 'some text user#t12# some text' 'username#John# some text' 'some text usersurname#Malks#' 'userphoto#1.jpg#' 如何获取介于#和#符号之间的文本 要搜索的字符串部分有一个典型的结构-type\variable 类型是一个JS变量类型,它位于第一个之前 变量是我需要获取的文本 我正在搜索一个regexp,它返回变量,即介于…之间 问题是,我对regexp不太

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

'some text user#t12# some text'
'username#John# some text'
'some text usersurname#Malks#'
'userphoto#1.jpg#'
如何获取介于#和#符号之间的文本

要搜索的字符串部分有一个典型的结构-
type\variable

类型
是一个JS变量
类型
,它位于第一个
之前

变量
是我需要获取的文本

我正在搜索一个regexp,它返回
变量
,即介于
之间


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

你需要使用捕获组,基本上在regex中,括号中的任何内容都是cpauture组的一部分,在这种情况下,你需要捕获两个哈希之间的所有字符。任意数量的字符正则表达式是.*所以这是您想要在两个哈希之间捕获的。一旦执行它,您将在数组中找到第二个匹配项(第一个是带有哈希的字符串)

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

那么你自己做了什么来解决这个问题呢?我自己编写代码的时候运气不好。@Steve如果你知道每个元素的确切位置,为什么不使用
split
函数呢?split也是expensive@Steve
indexOf
+
substring
?我需要支持
var1
变量,它直接放在f前面首先,也可以有多个#…#,有些可能不是我搜索的字符串的一部分,你能给我一个例子吗?我不明白,我已经更新了问题示例:
var type=something;/type#(.*)#/g