Skip to main content

目录

  • 去除两边空格
  • 用户名包含字符、数字、下划线和连接字符(-),并设置用户名的长度
  • 匹配以数字开头,并以 abc 结尾的字符串

常用符号

. :除去换行符以外字符
\w:字母 数字 下划线 汉字
\s:空白符
\d:数字
\b:字母
^:开头
$:结尾
\W:非字母/数字/下划线/汉字
\S:非空白符
\D:非数字
\B:非字母
[^x]:非 x 字符 \*:0 到多 +:1 到多
?:0 到 1
{n}:n 次
{n,}:n 到多次
{n,m}:n 到 m 次
\1:复制第 1 个()匹配的引用
\2:复制第 2 个()匹配的应用

正则实现 trim()去除两边空格

image.png

String.prototype.trim = function(){
return this.replace(/^\s+|\s+$/g, '')
}
//或者
function trim(string){
return string.replace(/^\s+|\s+$/g, '')
}

正则实现只允许用户名包含字符、数字、下划线和连接字符(-),并设置用户名的长度

/^[a-z0-9_-]{3,15}$/g

image.png

匹配以数字开头,并以 abc 结尾的字符串

/^[0-9]+abc$/g

^[0-9]+:匹配开头 1 次或多次的 0-9 数字 abc$:匹配结尾 abc

匹配账号最长为 13 为最短为 4,且首位为 1

/^[1-9][0-9]{4,12}$/g

^[1-9]:匹配开头 1-9 数字 [0-9]{4,12}$:匹配结尾最少 4 为最多 12 位的 0-9 数字

匹配常见的固定电话号码

/ \(?0 \d{2} [)-]? \d{8}/g

\(?0:匹配左括号一次或 0 次然后以 0 开头 \d{2}:后面加两个数字 [)-]?:匹配右括号或空格或减号一次或 0 次 \d{8}:随后匹配 8 个数字

判断字符串是否包含数字

/ \d /g

判断是否符合指定格式

XXX-XXX-XXXX(其中 X 为 Number 类型)

/^ (\d{3}-){2}\d{4} $/g

^(\d{3}-){2}:匹配开头两组 三个数字加上- \d{4}$:匹配结尾四个数字

参考文章:https://blog.csdn.net/hrj970808/article/details/109645198 > https://blog.csdn.net/weixin_41786576/article/details/87740011 > https://www.cxyzjd.com/article/hathaway_mogan/73033211 > https://blog.csdn.net/Geek_sun/article/details/80330937 > https://www.runoob.com/js/js-regexp.html > https://www.runoob.com/regexp/regexp-metachar.html > https://www.runoob.com/w3cnote/regular-expression-30-minutes-tutorial.html

用正则表达式匹配字符串,以字母开头,后面是数字、字符串或者下划线,长度为 9-20

const res = new RegExg(/^[a-zA-Z][a-zA-Z0-9_]{9,19}*$/g)