常用正则表达式

27 阅读1分钟

1、批量输入 “内容1 内容”,格式:换行

//textarea处理换行
const list = this.textarea.split('\n')
const pattern = /^\s*(.+?)\s+(.+)$/
const arr = item.match(pattern)
const storeName = arr[1].trim()
const num = arr[2].trim()

2、识别格式:姓名+手机号+详细地址(比如:杨某某    138****3333     某某省某某市XXXXXXXX

const pattern = /^\s*(.+?)\s+(.+?)\s+(.+)\s*$/
const arr = content.match(pattern)

3、手机号回显 183****3423

const reg = /^(\d{3})\d{4}(\d{4})$/
return tel.replace(reg, '$1****$2')

4、判断图片、视频

    /**
     * 判断图片还是视频
     */
    export function isVideoOrImage(path) {
      const imageExtensions = /\.(jpg|jpeg|png|gif|heic)$/i
      const videoExtensions = /\.(mp4|mov|avi|flv|mkv|rmvb)$/i
      if (imageExtensions.test(path)) return 'image'
      if (videoExtensions.test(path)) return 'video'
      return 'image'
    }

5、输入去除非数字

const num = e.replace(/[^0-9]/g, '')

6、请输入 4 位数字的手机号后四位

/^\d{4}$/.test(value)

7、批量识别要求【 内容1 + 内容2 】、【 内容1 + 内容2 】+【内容3 + 内容4】,用空格分隔,换行

//以空格、换行符、回车为分隔线,相邻的多个空格、换行符、回车仍然视为只有一个,分隔后返回字符数组。
const arr = item.trim().split(/\s+/)

8、手机号格式判断

const mobileRegex = /^1[3-9]\d{9}$/
const result = mobileRegex.test(phone)

常见的元字符

元字符含义
^匹配输入字符串的开始位置
\s匹配空白字符(空格、换行符、回车符)
\S匹配非空格字符
*匹配前面的字符0次或多次
.匹配任意字符
+匹配字符1次或多次
?匹配前一个字符0次或多次(尽可能的少的匹配字符)
$匹配字符串结尾
[^1-3]匹配不在1到3数字的字符
[0-9]匹配0到9的任意数字(例如:[1-9]匹配1到9的任意数字)
\d匹配任意数字等价[0-9]
{n}匹配n次({n,}至少匹配n次,{n,m}匹配n到m次)
()标志子表达式的开始和结束位置

"/i":不区分大小写; "/g":匹配所有符合条件的匹配项。