咳咳,在很多时候,我们可能会用到正则表达式来限制输入框的输入内容。
例如,在填写身份证号码的输入框内我们一般就需要限制输入的内容只能是数字,之后就是再限制它的位数,一般给到限制是只能输入16位数字或是18位数字;嗯,还有呢就是一些姓名、性别、籍贯之类的输入框我们也可以限制它的输入内容只能是汉字;又或是邮箱的输入框,邮箱号的话是包括了数字、字母和小点,所以我们就是限制这三种之外的内容就行了;还有的话呢自己就看着来,把需要输入之外的限制就行(当然了,你也可以不限制,看需求吧),当然了,正则还有很多地方也能用到的,例如查找某些数字、字母之类的等等。
用专业术语来说就是正则表达式就是记录文本规则的代码
接下来呢我就来分享一些正则表达式的写法吧(都是我最近在项目中用到的哈)
呃。。。。。。。哦差点忘了,先来一些基础值(这是在别处搬的哈)
A. 元字符
. 匹配除换行符以外的任意字符
\w 匹配数字或字母或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
B. 重复
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
C. 反义
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
D. 分组语法
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
(?=exp) 匹配exp1前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
限制输入框内的内容只能输入数字
onkeyup="value=value.replace(/[^\d\.]/g,'')"
上面呢是直接在input标签里面的写法,写在一个键盘事件里的onkeyup(某个键盘按键被松开),嗯下面的几种也是想这样的写法。
onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" 只能输入汉字
onkeyup="value = value.replace(/[^A-Za-z]/g, '')" 只能输入26个英文字母
onkeyup="value = value.replace(/[^A-Z]/g, '')" 只能输入26个大写英文字母
onkeyup="value = value.replace(/[^a-z]/g, '')" 只能输入26个大写英文字母
然后的别的话看官们就根据前面的那些值来自己拼凑成需求那般,如果上面刚好有的就直接拿去用吧
哦,对了,限制位数的话可以直接用正则来写;也可以用input标签里面的一个属性(maxlength="6")来实现,这个属性的意思为文本长度,而它的值6就代表是最多只能输入6位数;反正吧看官们喜欢哪种就哪用种哈
本期完