常用正则验证函数源于uview

常⽤正则验证函数源于uview
RegExp-正则表达式
正则表达式主要分两种
字⾯量创建: let reg = /abcd/
内置构造函数: let reg = new RegExp('abcd‘’);
匹配 => st(str) 返回值布尔
捕获 => (str) 返回值 null 或者数组。
基本元字符
元字符
淋幕机\s => 表⽰只匹配⼀个空格 const reg = /\s/
\S => 表⽰⼀个⾮空格 const reg = /\S/
\t => 表⽰需要⼀个制表符(tab) const reg = /\t/
\d => 表⽰⼀个数字(0-9) const reg = /\d/
\D => 表⽰⾮数字字符 const reg = /\D/
\w => 表⽰包含⼀个数字字母下划线三选⼀ const /\w/
\W => 表⽰⼀个除开数字字母下划线的字符之外的字符 const reg = /\W/
. => 表⽰有⼀个⾮换⾏任意字符(\n换⾏) const reg = /./ 例⼦ st('\n')
\ => 转义符把有意义内容转为没意义的内容 const reg = /./ ⾮换⾏ const reg = /\./ 匹配⼀个.⽂本 const reg = /\\/ 匹配⼀个\ 字符串中\也需要转义边界操作符
边界元字符
^ 以什么开头 const reg = /^\d/ 以数字开头
$ 以什么结束 const reg = /\d$/ 以数字结尾
限定元字符
+ 写在普通元字符或者字母符号后⾯
+ 修饰前⾯《⼀个符号》的出现次数{内不能有空格}
* 出现0 ~ 多次 const reg = /\d*/ 表⽰ 0 到多个数字
+ 表⽰ 1 ~ 多次 const reg = /^\d+$/ 数字开头,⾄少包含资格数字且数字结尾
表⽰ 0 ~ 1次 const reg = /^\d?$/ 只能有0 或者1 次数字
{n} 表⽰⽂本只能是三个数字组成 const reg = /^\d{3}$/
{n,} 表⽰数字只能从2到多个开始 const reg = /^\d{2,}/
{n,m} 表⽰数字只能是2~4个组成 const reg = /^\d{2,4}$/
{0,} 等价于 * {1,} 等价于 +
{0,1} 等价于?
[0-9A-ZA-Z_] 等价于\w
[^0-9a-zA-Z_] 等价于 \W
[0-9] 等价于 \d
[^0-9] 等价于\s
[ ] \s
[^ ] 等价于\S
贪婪匹配
/ * 贪婪
+ 当给你⼀个符号使⽤限定符的时候
+ 在你捕获的时候,他会尽可能'多'的去捕获内容
+ 我们管这个特性叫做正则的贪婪性
const reg = /\d+/ ('abc123456789abc) 取值为123456789
/
* ⾮贪婪
+ 正则在捕获的时候尽可能多的按照最⼩值来捕获
+ 写限定符的时候,在后⾯多加⼀个?
const reg = /\d+?/ ('abc123456789abc) 取值为1
const reg = /\d*?/ ('123456789abc) 取值为123456789
操作符
const reg = /\d?/ (123456789) 取值为 1
const reg = /\d??/ ('123456789abc)  取值为 ""
const reg = /<.+?>/ ("<div class="z" ><span></span></div>") 取值为 <div class="z" >特殊元字符
() 表⽰整体
单独捕获⼀个字符串的时候
从左边开始每个⼩括号⼀次是数组⾥⾯的[1]开始内容
动左到右次数⼩括号的开始括号
const reg = /abcd{2}/; st('abcdd)
const reg = /(abcd){2}/ st('abcdabcd')
/单独捕获
const reg = /\d+(\s+)\d+/ ('123  123')  index1 \n\n
const reg = /(\d+(\s+))\d+/ ('123  123') index1 123\n\n index2 \n\n
(?:) 匹配但不捕获
const reg = /\d+(?:\s+\d+)/
| 占位或⼤部分和()⼀起⽤
const reg = /(abc|def)/ st('abc')
[] 任意字符条件
const reg = /[abcd]/ st('sqwertd)
[^] ⾮⾥⾯任意⼀个字符都⾏
const reg = /[^abcd]/ st('e')
const reg = /^[0-9]$/
擦拭棒- 连码 1~9任意⼀个字符 [^0-9][^z-z][^A-Z]
当(.)出现在[] 或者[^]⾥⾯时就表⽰⽂本
const reg = /^(abc|def){2}$/ st('defabc') 表⽰任意整体,出现两次。
练习
验证字符串只能有数字字母下划线组成, 6-12位不能以_开头
const reg = /^[a-z0-9A-Z]\w{5,11}$/
验证数字范围 0 ~ 255
=> ⼀位数          \d          0-9
=> 两位数          \d{2}      10-99
=> 1 开头的三位数  1\d{2}      100-199
=> 2 开头 0 ~ 4    2[0-4]\d    200-249
=> 2 开头 5 三位数  25[0-5]    250-255
reg = /^(\d|\d{2}|1\d{2}|2[0-4]\d|25[0-5])$/
reg = /^(1?\d{1,2}|2[0-4]\d|25[0-5])$/
/**
* 验证电⼦邮箱格式
*/
function email(value){
return/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value);
}
/**
* 验证⼿机格式
*/
*/
function mobile(value){
return/^1[3-9]\d{9}$/.test(value)
}
/
**
* 验证URL格式
*/
function url(value){
return/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/.test(value)
}
/**
* 验证⽇期格式
*/
function date(value){
return!/Invalid|NaN/.test(new Date(value).toString())
}
/**
* 验证ISO类型的⽇期格式
滑线导轨
*/
function dateISO(value){
return/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value)
}
/**
* 验证⼗进制数字
*/
function number(value){
return/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value)
}
/**
* 验证整数
*/
function digits(value){
return/^\d+$/.test(value)
}
/**
* 验证⾝份证号码
*/
function idCard(value){
双顶置凸轮轴return/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(
value)
}
/**
* 是否车牌号
*/
function carNo(value){
// 新能源车牌
const xreg =/^[京津沪渝冀豫云辽⿊湘皖鲁新苏浙赣鄂桂⽢晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/; // 旧车牌
自动拖把
const creg =/^[京津沪渝冀豫云辽⿊湘皖鲁新苏浙赣鄂桂⽢晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/; if(value.length ===7){
st(value);
}else if(value.length ===8){
st(value);
}else{
return false;
}
}
/**
* ⾦额,只允许2位⼩数
*/
function amount(value){
function amount(value){
//⾦额,只允许保留两位⼩数
return/^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value);
}
/**
* 中⽂
*/
function chinese(value){
let reg =/^[\u4e00-\u9fa5]+$/gi;
st(value);
}
/**
* 只能输⼊字母
*/
function letter(value){
return/^[a-zA-Z]*$/.test(value);
}
/**
* 只能是字母或者数字
*/
function enOrNum(value){
/
/英⽂或者数字
let reg =/^[0-9a-zA-Z]*$/g;
st(value);
}
/**
* 验证是否包含某个值
*/
function contains(value, param){
return value.indexOf(param)>=0
}
/**
* 验证⼀个值范围[min, max]
*/
function range(value, param){
return value >= param[0]&& value <= param[1]
}
/**
* 验证⼀个长度范围[min, max]
*/
function rangeLength(value, param){
return value.length >= param[0]&& value.length <= param[1]
}
/
**
* 是否固定电话
*/
function landline(value){
let reg =/^\d{3,4}-\d{7,8}(-\d{3,4})?$/;
st(value);
}
/**
* 判断是否为空
*/
function empty(value){
switch(typeof value){
case'undefined':
return true;
case'string':
place(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'').length ==0)return true; break;
case'boolean':
if(!value)return true;
break;
case'number':
if(0=== value ||isNaN(value))return true;
break;
case'object':
if(null=== value || value.length ===0)return true;
for(var i in value){
return false;
}
return true;
}
方形磁铁return false;
}
/**
* 是否json字符串
*/
function jsonString(value){
if(typeof value =='string'){
try{
var obj =JSON.parse(value);
if(typeof obj =='object'&& obj){
return true;
}else{
return false;
}
}catch(e){
return false;
}
}
return false;
}
/**
* 是否数组
*/
function array(value){
if(typeof Array.isArray ==="function"){
return Array.isArray(value);
}else{
return String.call(value)==="[object Array]"; }
}
/**
* 是否对象
*/
function object(value){
return String.call(value)==='[object Object]'; }
/**
* 是否短信验证码
*/
function code(value, len =6){
return new RegExp(`^\\d{${len}}$`).test(value);
}

本文发布于:2024-09-23 01:35:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/126291.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:AT指令
标签:数字   验证   是否   字母   正则   只能
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议