关于javascript:正则表达式之-星号

正则表达式 *

官网文档解释 匹配前一个表达式 0 次或屡次。等价于 {0,}

var reg = /bo*/
var reg1 = /bo{0,}/  类同上
var str1 = "A ghost boooooed"
var str2 = "A bird warbled"
var str3 = "A goat grunted"
str1.match(reg) // boooooo
str2.match(reg) //b
str3.match(reg) //null

从下面论断得出 o能够屡次匹配 b前面没有o就不能够匹配,如果o后面不是b也匹配不上

问题来了,b能够匹配屡次吗//毕竟是0次或屡次

var str4 = "A goat grunted bbbbb"
str4.match(reg) //b

后果进去了,居然是只有一次b,这和我想的有点出入,那bo是一个整体吗,也并不是第一个就能够看出o匹配了屡次

var reg2 = /bbo*/;
var str1 = "A ghost boooooed"  // null 第二位没有匹配上 boooooed
var str2 = "A bird warbled"    //null 第二位没有匹配上
var str3 = "A goat grunted"   
var str4 = "A goat grunted bbbbb"  // bb 两位匹配上 然而没有o
var str5 = "A goat grunted bboooooo" // bboooo 前两位匹配上且o屡次匹配
console.log(str1.match(reg2)) //null 
console.log(str2.match(reg2)) //null
console.log(str3.match(reg2)) //null
console.log(str4.match(reg2)) //bb
console.log(str5.match(reg2)) //bboooooo
var reg2 = /b*/;
var str1 = "A ghost sboooooed" //null
var str2 = "A bird warbled"//null
var str3 = "A goat bbbbsdfsd"//null 空格没有匹配
var str4 = "bbbbbsdsd"// bbbbbb 只能以b结尾的0-n 次
var str5 = "A goat grunted sdbboooooo"//null

总结:比照两个reg匹配字段有的0或者屡次,如果后面只有一个数字或者字母等那就是0-屡次,如果后面匹配时候长串的比方 bbo这种,除了最初一位能够匹配屡次之外,后面的都且只能匹配1次,如果第一个是0次,那间接返回null,只有后面几位其中一个是0次,那返回的就是null,如果前几位都匹配上并且只有一次,那最初一个就有屡次能够匹配

刷新了我对*号的意识
课外练习题
var reg = /[0-9]*/
var reg1 = /\d*/
var str1 = "asdf0333"
var str2 = "1231sfsdf"
var str3 = "sd12222er" 
console.log(str1.match(reg1))
console.log(str2.match(reg1))
console.log(str3.match(reg1)) 

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理