相关疑难解决方法(0)

Javascript替换参考匹配组?

我有一个字符串,如hello _there_.我想,以取代两个下划线<div></div>分别使用JavaScript的.输出(因此)看起来像hello <div>there</div>.该字符串可能包含多对下划线.

我所寻找的是一个方法来无论是运行在每场比赛,红宝石做它的方式的函数:

"hello _there_".gsub(/_.*?_/) { |m| "<div>" + m[1..-2] + "</div>" }
Run Code Online (Sandbox Code Playgroud)

或者能够引用匹配的组,再次以红宝石的方式完成:

"hello _there_".gsub(/_(.*?)_/, "<div>\\1</div>")
Run Code Online (Sandbox Code Playgroud)

任何想法或建议?

javascript regex

211
推荐指数
3
解决办法
12万
查看次数

正则表达式:使用量词捕获多个组

请考虑以下代码:

<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">

var str = '<12> rnbqkb-r Rnbq-b-r ';

var pat1 = new RegExp('^\\<12\\> ([rnbqkpRNBQKP-]{8}) ([rnbqkpRNBQKP-]{8})');
var pat2 = new RegExp('^\\<12\\> ([rnbqkp RNBQKP-]{8}){2}');
var pat3 = new RegExp('^\\<12\\> ([rnbqkp RNBQKP-]{8}){2}?');

document.write(str.match(pat1));
document.write('<br />');
document.write(str.match(pat2));
document.write('<br />');
document.write(str.match(pat3));

</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

哪个产生

<12> rnbqkb-r Rnbq-b-r,rnbqkb-r,Rnbq-b-r
<12> rnbqkb-r Rnbq-b-, Rnbq-b-
<12> rnbqkb-r Rnbq-b-, Rnbq-b-
Run Code Online (Sandbox Code Playgroud)

作为输出.

为什么既没有模式pat2也没有pat3捕获第一组rnbqkb-r?我想捕获所有组,而不必像模式中那样明确地重复它们pat1.

javascript regex

6
推荐指数
1
解决办法
4711
查看次数

标签 统计

javascript ×2

regex ×2