正则匹配只能是数字字母,开始和结束到底匹配到哪里?

正则匹配只能是数字字母,开始和结束到底匹配到哪里。
let reg2=/^[a-zA-Z0-9]+$/

        let reg1=/[a-zA-Z0-9]+/;//匹配至少含有一个数字或字母的字符串
        let reg2=/^[a-zA-Z0-9]+$/;//?这个开始和结尾到底匹配到哪里
         
        console.log(reg1.test(''));//false
        console.log(reg1.test('a-'));//true
        console.log(reg1.test('13232-3213'));//true
        console.log(reg1.test('423432432'));//true

        console.log(reg2.test(''));//false
        console.log(reg2.test('a-'));//false
        console.log(reg2.test('13232-3213'));//false
        console.log(reg2.test('423432432'));//true
阅读 3k
3 个回答

^匹配字符串的开始,匹配一个位置;
$匹配字符串的结束,匹配一个位置;
/^[a-zA-Z0-9]+$/的意思就是首先要匹配字符串开始,然后是1到多个字母或者数字,然后是字符串的结束,总结一下就是整个字符串就是由1到多个字母和数字组成的。

你可以使用字符串的match方法进一步查看匹配的情况,test只会返回true或者false,并不提供匹配的具体的字符串:

let reg1=/[a-zA-Z0-9]+/g;
let reg2=/^[a-zA-Z0-9]+$/g;
 
'13232-3213'.match(reg1) // ["13232", "3213"]
'423432432'.match(reg1) // ["423432432"]

'13232-3213'.match(reg2) // null
'423432432'.match(reg2) // ["423432432"]

意思就是一个字符串要能匹配这个正则,就必须全部是数字和字母,从开头到结束都是字母和数字

正则匹配你当前需要匹配的整个字符串,若字符串符合正则返回true,反之返回false。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题