Skip to content

regex 正则表达式

数据类型正则

函数名描述类型参数返回值
isUrl检查url(content: string)=> boolean需检测的数据boolean
isEmail检查邮箱地址(content: string)=> boolean需检测的数据boolean
isIdCardNo检查身份证号码(content: string)=> boolean需检测的数据boolean
isMobilePhone检查手机号码(content: string)=> boolean需检测的数据boolean
isCarNo检查车牌号码(content: string)=> boolean需检测的数据boolean

示例

正则表达式例子
函数名例子返回值
isUrlisUrl('https://www.baidu.com/')true
isUrl('www.baidu.com/')false
isEmailisEmail('1111.com')false
isEmail('11@11.com')true
isIdCardNoisIdCardNo('110220300014253678')false
isIdCardNo('19')false
isMobilePhoneisMobilePhone('18912345678')true
isMobilePhone('1891234567')false
isCarNoisCarNo('粤999999')false
isMobilePhone('粤A99999')false

<template>
  <div>
    <config-table title="正则表达式例子" :list="list"></config-table>
  </div>
</template>

<script setup lang="ts">
  import {
    isUrl,
    isEmail,
    isIdCardNo,
    isMobilePhone,
    isCarNo
  } from '@vtj/utils';

  import ConfigTable from '$/components/configTable.vue';

  const list = [
    {
      rowspan: 2,
      name: 'isUrl',
      example: "isUrl('https://www.baidu.com/')",
      return: isUrl('https://www.baidu.com/')
    },
    {
      example: "isUrl('www.baidu.com/')",
      return: isUrl('www.baidu.com/')
    },
    {
      rowspan: 2,
      name: 'isEmail',
      example: "isEmail('1111.com')",
      return: isEmail('1111.com')
    },
    {
      example: "isEmail('11@11.com')",
      return: isEmail('11@11.com')
    },
    {
      rowspan: 2,
      name: 'isIdCardNo',
      example: "isIdCardNo('110220300014253678')",
      return: isIdCardNo('110220300014253678')
    },
    {
      example: "isIdCardNo('19')",
      return: isIdCardNo('19')
    },
    {
      rowspan: 2,
      name: 'isMobilePhone',
      example: "isMobilePhone('18912345678')",
      return: isMobilePhone('18912345678')
    },
    {
      example: "isMobilePhone('1891234567')",
      return: isMobilePhone('1891234567')
    },
    {
      rowspan: 2,
      name: 'isCarNo',
      example: "isCarNo('粤999999')",
      return: isCarNo('粤999999')
    },
    {
      example: "isMobilePhone('粤A99999')",
      return: isMobilePhone('粤A99999')
    }
  ];
</script>

path-to-regexp

path-to-regexp

将路径字符串转换为正则表达式

该工具库用来处理 url 中地址与参数,能够很方便得到我们想要的数据。

js 中有 RegExp 方法做正则表达式校验,而 path-to-regexp 可以看成是 url 字符串的正则表达式。

函数名描述类型参数返回值
pathToRegexp将路径字符串转换为 RegExp(url:string, options?:array)=> stringurl: 需转换的路径string
pathToRegexpMatch匹配 url 地址与规则是否相符(url:string,options?:array)=> functionurl 需匹配的路径规则function
pathToRegexpParse解析 url 字符串中的参数部分(url:string,options?:array)=> arrayurl 需解析的路径返回一个数组,从第二个数据可以就可以得到 url 地址携带参数的属性名称
pathToRegexpCompile快速填充 url 字符串的参数值(url:string,options?:array)=> functionurl 需匹配的路径规则function

pathToRegexp

作用:这里这个方法可以类比于 js 中 new RegExp('xxx')。

js
pathToRegexp(/user/:name)
// => /^\/user(?:\/([^\/#\?]+?))[\/#\?]?$/i

pathToRegexpMatch

作用:匹配 url 地址与规则是否相符。

js
const fn = pathToRegexpMatch("/user/:id");

fn("/user/123"); //=> { path: '/user/123', index: 0, params: { id: '123' } }
fn("/invalid"); //=> false
fn("/user/caf%C3%A9"); //=> { path: '/user/caf%C3%A9', index: 0, params: { id: 'café' } }

pathToRegexpParse

作用:解析 url 字符串中的参数部分。

js
var url = '/user/:id';
console.log(pathToRegexpParse(url));

// [ '/user',
//   { name: 'id',
//     prefix: '/',
//     delimiter: '/',
//     optional: false,
//     repeat: false,
//     partial: false,
//     pattern: '[^\\/]+?' } ]

pathToRegexpCompile

快速填充 url 字符串的参数值。

js
var url = '/user/:id/:name'
var data = {id: 10001, name: 'bob'}
console.log(pathToRegexpCompile(url)(data))

// => /user/10001/bob




const toPathRaw = compile("/user/:id", { encode: false });

toPathRaw({ id: "%3A%2F" }); //=> "/user/%3A%2F"
toPathRaw({ id: ":/" }); //=> Throws, "/user/:/" when `validate` is `false`.

Released under the MIT License.