考虑这个字符串,
var string = "sometext/#a=some_text/#b=25/moretext";
我想做的是提取“a”和“b”的值(“some_text”和 25)
所以基本上我想做的是找到 "#a="
并获取以下 /
之前的所有内容,然后对 b 执行相同的操作。如何做到这一点?此外,我是否会使用相同的表达式来更改字符串中的值?
我有人用 PHP 来做这件事,但现在我无法弄清楚 JavaScript。
编辑
这是提取的 PHP 版本:
$string = "sometext/#a=some_text/#b=25/moretext";
$expr = '@#([a-z]+)=(.+?)/@';
$count = preg_match_all($expr, $string, $matches);
$result = array();
for ($i = 0; $i < $count; $i++) {
$result[$matches[1][$i]] = $matches[2][$i];
}
print_r($result[b]);
(输出将是“some_text”)
最佳答案
var x = "sometext/#a=some_text/#b=25/moretext".match(/#a=(.+)\/.*#b=(.*).*\//)
var matches = [x[1], x[2]];
关于JavaScript:使用正则表达式提取其他字符之间的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845960/