<script type="text/javascript">
var reg = /j?/;
var str = "eestjbavascriptest";
var result = reg.exec(str);
alert(result);
</script>结果为空串,不是null<script type="text/javascript">
var reg = /(j)?/;
var str = "eestjbavascriptest";
var result = reg.exec(str);
alert(result);
</script>结果为,
请理解的同志帮忙分析一下,多谢js正则
var reg = /j?/g;
你换这样写试下 g是全局匹配
然后,你得理解exec函数的作用,exec函数执行的时候会返回一个数组,数组的第一个元素使匹配的字符串,然后依次是匹配的分组。第一个表达式没有分组,所以只返回了一个元素的数组,这个元素就是匹配的那个空串。而第二个表达式中有一个分组,所以就会返回两个元素的数组,第一个元素使匹配的空字符串,第二个元素是当前匹配中分组的内容也是空字符串。所以第二个表达式执行后返回的是两个空串组成的数组。打印出来就会显示两个元素的分割符-逗号。