常用正则规则、地址URL拆分

正则规则

1、配制
  • g:表示全局,匹配全部
  • i: 表示不区分大小写
  • m:表示匹配多行(匹配换行两端的潜在匹配)
2、规则如下
2.1、非打印字符
\n	  匹配一个换行符。
\r	  匹配一个回车符。
\s	  匹配任何空白字符。
\S	  匹配任何非空白字符
\     转义符
2.2、描述字符
\d  匹配一个字数字符,/\d/ = /[0-9]/ 
\D  匹配一个非字数字符,/\D/ = /[^0-9]/ 
\w  匹配一个字母、数字、下划线,等于[a-zA-Z0-9] 
\W  匹配一个非字母、数字、下划线,等于[^a-zA-Z0-9]
.   匹配除行结束符意外的任何字符 
2.3、特殊字符
^	  匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。
$	  匹配输入字符串的结尾位置
( )	  标记一个子表达式的开始和结束位置
[xyz] 匹配这个集合中的任意一个字符(或元字符) 
[^xyz] 匹配不在这个集合中的任何一个字符 
[0-9]  查找从 09 范围内的数字,即查找数字
[a-z]  查找从小写 a 到小写 z 范围内的字符,即查找小写字母
[A-Z]  查找从大写 A 到大写 Z 范围内的字符,即查找大写字母
[A-z]  查找从大写 A 到小写 z 范围内的字符,即所有大小写的字母
|	  指明两项之间的一个选择
2.4、限定符
*	匹配前面的子表达式零次或多次
+	匹配前面的子表达式一次或多次
?	匹配前面的子表达式零次或一次
{n}	 n 是一个非负整数。匹配确定的 n 次。
{n,} n 是一个非负整数。至少匹配n 次。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。
2.5、断言
  • (?=pattern) 正向先行断言
    代表字符串中的一个位置,紧接该位置之后的字符序列能够匹配 pattern。
    在这里插入图片描述

  • (?!pattern) 负向先行断言
    代表字符串中的一个位置,紧接该位置之后的字符序列不能匹配 pattern
    在这里插入图片描述

  • (?<=pattern) 正向后行断言
    代表字符串中的一个位置,紧接该位置之前的字符序列能够匹配 pattern。
    在这里插入图片描述

  • (?<!pattern) 负向后行断言
    代表字符串中的一个位置,紧接该位置之前的字符序列不能匹配 pattern。
    在这里插入图片描述

常用正则验证

1、 验证金额
  1. 正则验证 (输入时、输入完毕时验证皆可)
let reg = /(^[1-9][0-9]{0,8}([.][0-9]{0,2})?$)|(^0?(\.[0-9]{0,2})?$)/
//输入金额不正确,最低精确到分,最高不能超过亿!
  1. 提交金额时(将 .8 / 1234. 形式转化为数字形式)
if(money == '.')  money = 0;
let  realNumber = Number(money)                        

将.8改为0.8 , 将123.改为123
可再单独判断输入.,将其默认为0;

如有错误,请告之

2、手机号验证
let   phoneReg   = /^[1]([3-9])[0-9]{9}$/
3、营业执照验证
let   reg = /(^(?:(?![IOZSV])[\dA-Z]){2}\d{6}(?:(?![IOZSV])[\dA-Z]){10}$)|(^\d{15}$)/
4、字符串是否为数字的验证
function isNumber(val) {
    var regPos = /^\d+(\.\d+)?$/; //非负浮点数
    var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
    if(regPos.test(val) || regNeg.test(val)) {
        return true;
    } else {
        return false;
    }
 }
5、JS验证是否为URL
function isUrl(str) {
      var v = new RegExp('^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', 'i');
      return v.test(str);
}
6、密码的验证
  • 8-16个字符,只能包含字母、数字及特殊字符,至少包含两种
var reg = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{8,16}$/;
  • 至少12位,必须包含大写字母、小写字母、数字、特殊字符
var reg = /^(?=.{12})(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[*?!&¥$%^#,./@";:><\[\]}{\-=+_\\|》《。,、?’‘“”~ `]).*$/;

(?=.{12}) 表示要大等于12位。
(?=.?[a-z])表示要有小写字母。
(?=.
?[A-Z])表示要有大写字母。
(?=.?\d)表示要有数字。
(?=.
?[*?!&¥$%^#,./@";:><[]}{-=+_\|》《。,、?’‘“”~> ])`表示要有特殊字符。

获取url中的参数

  const getQuery = (url) => {
        // str为?之后的参数部分字符串
        const str = url.substr(url.indexOf('?') + 1)
        // arr每个元素都是完整的参数键值
        const arr = str.split('&')
        // result为存储参数键值的集合
        const result = {}
        for (let i = 0; i < arr.length; i++) {
            // item的两个元素分别为参数名和参数值
            const item = arr[i].split('=')
            result[item[0]] = item[1]
        }
        return result
    }

String常用方法

1、String.prototype.replace(),使用特殊变量名作为第二个参数

String.prototype.replace(reg,str)

参数str:可以是下面的特殊变量名:
在这里插入图片描述
replace方法的参考链接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace

let str = '[object Number]';

//$1表示前边正则中第一个括号内匹配的内容
//这里的意思是用前边正则中第一个括号内匹配的内容,替换整个内容
let typeStr = str.replace(/^\[object (\S+)\]$/, '$1');   // "Number"
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值