JavaScript:使用正则表达式提取其他字符之间的字符

标签 javascript jquery regex string

考虑这个字符串,

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

Live DEMO

关于JavaScript:使用正则表达式提取其他字符之间的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845960/

相关文章:

javascript - 仅当行除破折号外没有其他字符时才匹配正则表达式

jquery - 如何自定义jquery验证数字格式?

javascript - 使用 document.write 添加 jQuery 本地后备

javascript - 如何将空格字符串转换为数组

javascript - 如何修复应使用 CSS 突出显示选定区域的代码

javascript - 用于验证 SSN 或 Tin 的正则表达式代码

regex - 在 Perl 中/^/和/^/m 之间有区别吗?

javascript - 仅选择周末日期

jquery - 如果声音正在播放 jquery

javascript 无效的正则表达式 : Unmatched ')'