正则表达式javascript中*和+之间的差异

时间:2015-08-18 05:41:12

标签: javascript regex

两者都给出了相同的结果,那么" *"之间的区别是什么?和" +"符号。 我怎么知道使用哪一个。

var str= "oofo fooloo"
var StarSymbol= str.match(/fo*/g);
var PlusSymbol= str.match(/fo+/g)
console.log(StarSymbol)  // ["fo", "foo"]
console.log(PlusSymbol) // ["fo", "foo"]

fiddle

3 个答案:

答案 0 :(得分:0)

你又问了同样的问题。所以让我解释一下。

this === undefined

Ya,两者都给出了相同的结果(用于此输入),但var str= "oofo fooloo" var StarSymbol= str.match(/fo*/g); var PlusSymbol= str.match(/fo+/g) console.log(StarSymbol) // ["fo", "foo"] console.log(PlusSymbol) // ["fo", "foo"] 仅匹配fo*,而f则不匹配。 fo+重复前一个令牌零次或多次,其中*重复前一个令牌一次或多次。所以这要求前一个令牌重复至少一次。

示例:

+

答案 1 :(得分:0)

> var str= "f" undefined > str.match(/fo*/g); [ 'f' ] > str.match(/fo+/g); null > 搜索o* o&#39>

zero or more搜索o+ o&#39>

完成教程

答案 2 :(得分:0)

*表示在0和无限次之间,而+表示至少一次(不能为零次)

为了更加详细,*就像写{0,},而+就像写{1,}