相关疑难解决方法(0)

当我期望一个匹配时,match()返回带有两个匹配的数组

请考虑以下示例:

<html>
<body>

<script type="text/javascript">

var str="filename.jpg";

var pattOne = new RegExp('\.[^\.]*$');
var pattTwo = new RegExp('(\.[^\.]*$)');
var pattThree = new RegExp('(\.[^\.]*$)', 'g');

document.write(str.match(pattOne));
document.write('<br>');
document.write(str.match(pattTwo));
document.write('<br>');
document.write(str.match(pattThree));

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

结果如下:

.jpg
.jpg,.jpg
.jpg
Run Code Online (Sandbox Code Playgroud)

我期待这个结果:

.jpg
.jpg
.jpg
Run Code Online (Sandbox Code Playgroud)

为什么在正则表达式周围放置括号会改变结果?为什么使用'g'修饰符会再次改变结果?

javascript regex string match

16
推荐指数
2
解决办法
2万
查看次数

0
推荐指数
1
解决办法
621
查看次数

标签 统计

javascript ×2

regex ×2

match ×1

string ×1