判断规则:必须以##开头,以##结束,中间包含1-50个中文或英文字符,不允许为空或超长
##...##里面[key:value]是可选的,就是[开头,]结束,并且必须包含:,:前后都要有值大概样子是##我是一个标题[id:1][name:李四]##跪求大神给一完美的正则表达式,谢谢啦
##...##里面[key:value]是可选的,就是[开头,]结束,并且必须包含:,:前后都要有值大概样子是##我是一个标题[id:1][name:李四]##跪求大神给一完美的正则表达式,谢谢啦
调试欢乐多
var reg=/^(?=##.{1,50}##$)##[\u4e00-\u9fa5a-z\d]*([\u4e00-\u9fa5a-z\d]*\[[a-z\d]+\:[a-z\u4e00-\u9fa5\d]+\])*[a-z\u4e00-\u9fa5\d]*##/i; var arr=[
'##我是一个标题[id:1][name:李四]##',
'##我是一个标题##',
'##我是一个标题[id:1][name:李四]aa[name:李四]##',
'##我是一个标题[id:1][name:李四]aa[name:李四]name:李四]aa[name:李四]##',
'##我是一个标题[id:1][name:李四]aa[name:李四][name:李四]aa[name]##',
'我是一个标题[id:1][name:李四]我是一个标题[id:1][name:李四]我是一个标题[id:1][name:李四]我是一个标题[id:1][name:李四]我是一个标题[id:1][name:李四]我是一个标题[id:1][name:李四]'
]
arr.forEach(function (item) {
console.log(reg.test(item));
})试下这样对不
另外能解释下啥意思吗,严重的看不懂啊
/^(?=##.{1,50}##$)##[\u4e00-\u9fa5\w]+(?:\[[^\[\]]+:[^\[\]]+\])*##$/
var reg=/^(?=##.{1,50}##$)##[\u4e00-\u9fa5a-z\d]*(\[[a-z\d]+\:[a-z\u4e00-\u9fa5\d]+\])*##/i; var arr=[
'##我是一个标题[id:1][name:李四]##',
'##我是一个标题##',
'##我是一个标题[id:1][name:李四]aa##'
]
arr.forEach(function (item) {
console.log(reg.test(item));
})
这样?
https://regexper.com