var str='33a64727198'
console.log(/j?/g.test(str))
console.log(/3?/g.test(str))
都输出true ..
请问这两个符号存在的意义是>??
var str='33a64727198'
console.log(/j?/g.test(str))
console.log(/3?/g.test(str))
都输出true ..
请问这两个符号存在的意义是>??
var str='红富士苹果'
console.log(/青?/g.test(str)) // true
console.log(/红?/g.test(str)) // true
可以是青的也可以不是青的就等价于可以是红的也可以不是红的,所以/青?/g等价于/红?/,但是很明显这样的正则判断没有意义,即可能存在也可能不存在,那还判断什么。。。
再看
var str='红苹果'
console.log(/^青?苹果$/.test(str)) // false
console.log(/^红?苹果$/.test(str)) // true
这样就看出了两个正则的区别了,第一个正则匹配的要么是青苹果要么是苹果,第二个正则匹配要么是红苹果要么是苹果。正则是工具,要匹配的字符串是结果,不同的工具在某些时候可以获取相同的结果,但我们关注的重点是只要结果是正确的就行了。*号同理
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
你可能把 ? 理解为单个字符只能出现一次,比如:
而是去匹配字符的时候,该字符只能在匹配结果中出现0-1次。
你可以使用
str.match(reg)
,这个可以输出你正则匹配的结果