正则有关面试题

编写一条正则,用来验证规则:一个6~16位的字符串,必须同时包含有大小写字母和数字

let reg = /(?!^[a-zA-Z]+$)(?!^[A-Z0-9]+$)(?!^[a-z0-9]+$)^[a-zA-Z0-9]{6,16}$/;

/*
*  此处使用正则的负向预查
*  (?!^[a-zA-Z]+$) ==> 不能只包含 纯小写字母 纯大写字母   大小写字母混合
*  (?!^[A-Z0-9]+$) ==> 不能只包含 纯大写字母 纯数字      大写字母和数字混合
*  (?!^[a-z0-9]+$) ==> 不能只包含 纯小写字母 纯数字      小写字母和数字混合
*  ^[a-zA-Z0-9]{6,16}$ ⇒ 正则匹配 小写字母 大写字母 数字 长度大于6位小于16位
*/

console.log(reg.test('aaaaaaaaaaas'))  // false
console.log(reg.test('AAAAAAAAAAAA'));  // false
console.log(reg.test('6666666666'));  // false
console.log(reg.test('aaaaaAAAAAA'))  // false
console.log(reg.test('aaaaaa222222'));  // false
console.log(reg.test('aaaaaa22AA222'));  // true

一串字符串 包含数字字母 _ 必须包含 _

let reg = /(?!^[0-9A-Za-z]+$)^\w{1,10}$/;
let reg2 = /(?=_)\w+/

console.log(reg.test('123qw'))   // false
console.log(reg2.test('123qw'))  // fasle
console.log(reg.test('123qw_'))  // true
console.log(reg2.test('123qw_')) // true

一段字符串 将英文单词首尾加空格

let str = 'no作no死,you行you上,no能no逼逼!'


let reg = /[a-z]+/ig

str = str.replace(reg,value=>{
  return ' '+value+' '
}).trim()

console.log(str) // no 作 no 死, you 行 you 上, no 能 no 逼逼!

解析url中的协议 域名 路径 参数 哈希值

let url = 'https://www.baidu.com/search/index.index/?1x=12&from=wx#video';

let reg = /^(?:(http|https|tcp):\/\/)?((?:[\w-]+\.)+[a-z0-9]+)((?:\/[^/?#]*)+)?(\?[^/#]+)?(#.+)?$/i;

  console.log(reg.exec(url));

在这里插入图片描述

使用正则实现trim方法

function myTrim(str){
  let reg = /^\s+|\s+$/g

  return str.replace(reg,function(a){
    return ''
  })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值