我在jquery中使用正则表达式只过滤数字。
var regex = /^[0-9]*$/以上与/^[0-9]*$/g的区别是什么?
发布于 2015-08-21 04:00:02
它是正则表达式标志之一,它意味着全局搜索,匹配文本中的所有结果。
你的问题是/^[0-9]*$/和/^[0-9]*$/g之间的区别
在这种特殊情况下没有差异,因为您只想过滤数字,所以不管您是否使用标志'g‘,它都会扫描整个字符串,如果它有其他字符,则返回false。
但在其他情况下,我可以向您展示使用标志'g‘与不使用标志’g‘的区别,如下所示:
var str = "abcdefgabcdefg";
var reg1 = /abcd/;
var reg2 = /abcd/g;
str.match(reg1); //output is ["abcd"]
str.match(reg2); //output is ["abcd", "abcd"]还有一些像m,i,y这样的标志。你可以找到文档这里。
发布于 2015-08-21 03:34:04
G修饰符用于执行全局匹配(查找所有匹配,而不是在第一次匹配之后停止)。
var str = "Is this all there is?";
var patt1 = /is/g;
var result = str.match(patt1);输出: is,is
注:是吗?是?
它将避免第一个'Is‘。
https://stackoverflow.com/questions/32131918
复制相似问题