javascript正则表达式的如何使用

粗略的可以参考https: www runoob com jsref jsref-obj-regexp html什么是正则表达式? 正则表达式是由一个字符序列

粗略的可以参考https://www.runoob.com/jsref/jsref-obj-regexp.html

什么是正则表达式?

正则表达式是由一个字符序列形成的搜索模式。

当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。

正则表达式可以是一个简单的字符,或一个更复杂的模式。

正则表达式可用于所有文本搜索和文本替换的操作。

一些常见的正则表达式https://blog.csdn.net/lm1022/article/details/79050083

 

项目中遇到一种情景,在用户登录的时候使用js的正则表达式判断输入是否为[字母][数字][下划线]的组合,且仅包含此三种符号。使用表达式和函数如下:

function isValid(str) 
{ 
  return /(?=.*[A-Za-z])(?=.*[\d])(?=.*_)(^[0-9a-zA-Z_]{1,}$)/.test(str); 
}

 讲解一下:

  1. 第一个括号内是查找匹配出后面跟着某个字母的字符串,这说明了整个字符串中含有字母。
  2. 再通过类似的方法查找匹配出来的字符串中是否含有数字、下划线_。
  3. 到第四个括号时,已经说明整个字符串中同时含有字母、数字、下划线_。
  4. 最后一个括号里,针对匹配出来的字符串,查找其开头和结尾是[字母、数字、下划线_]的字符串。其中(^n+$)是常见的一种正则表达式,用于确定字符串由n组成,n可以是一个集合,(^n+$)相当于(^n{1,}$)。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
. 查找单个字符,除了换行和行结束符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
\d 查找数字。
n*

匹配任何包含零个或多个 n 的字符串。

例如,/bo*/ 匹配 "A ghost booooed" 中的 "boooo","A bird warbled" 中的 "b",但是不匹配 "A goat grunted"。

n{X,}

X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。

例如,/a{2,}/ 不匹配 "candy" 中的 "a",但是匹配 "caandy" 和 "caaaaaaandy." 中所有的 "a"。

^n 匹配任何开头为 n 的字符串。
n$ 匹配任何结尾为 n 的字符串。



推荐一下
正则表达式生成网站http://tools.jb51.net/regex/create_reg,可以根据条件自动生成正则表达式

 

再强烈推荐一个正则表达式的debug网站https://regex101.com

可以在REGULAR EXPRESSION中输入正则表达式,下面的TEST STRING中输入测试字符串,右边会对于正则表达式的含义进行解释。

需要注意此部分的输入会被整体看做一个字符串进行测试,并不是每一行测试一次。

好在可以测试实时输入,右边会实时显示测试是否通过。

这个网站还有一个特别好的地方,如果输入的字符串匹配失败,在你输入的正则表达式右上角有个debug按钮(小甲虫图标),点击后可以进入debug界面https://regex101.com/debugger

在这里可以分步查看匹配流程,默认是查看50步,可以自行修改步数。通过匹配流程可以更好地理解正则表达式

您可能有感兴趣的文章
js实现按钮开关单机下拉菜单效果

label+input实现按钮开关切换效果的实例

jQuery 如何实现一个滑动按钮开关

JS正则表达式大全

javascript正则表达式知识大全