关于js里的一些心得(正则表达式)
这些心得是萌新作者再学习过程中的作业上发现的,希望大佬们如果发现有错误和有更加好的意见务必提出。
正则表达式定义的是一个规则,一个与字符串匹配的规则。
我的题目是:
1.字符串中只能有字母或数字
2.至少是8位
3.数字至少出现两次
<script>
//输入
var str = prompt();
// 验证
function inspection(password) {
if (str.length >= 8 && (new RegExp(/[a-z0-9]/i).test(str)) && (new RegExp(/[0-9]{2,}/i).test(str))) {
alert("valid password");
} else
alert("invalid password");
}
inspection(str);
</script>
其中正则表达式要通过一个RegExp对象来定义
可写为:
var reg=new RegExp(……);
其中括号里为定义的规则
规则:
/ /里的内容
^和$分别是以什么开头和结尾
例如
/^a/ 为以a开头
/a$/为以a结尾
里面的内容为横向比较,加上[]为纵向比较
例如
/ab/有a和b
/[a或b]/有a或b
/ /中的大括号
{出现的最少次数,出现的最多次数}
例如
/a{2,3}/ 表示匹配a连续出现两到三次的字符串
像aabbaaabb
但超过三个也能被匹配如aaaaaabbb
还有几个常见简略写法
\D除了数字
\d数字
\w数字字母
\w除了数字字母
\s 查找空白字符。
n+ 至少一个 n 的字符串。
n*零个或多个 n 的字符串
n?零个或一个 n 的字符串
/后面的i g
i是忽略大小写匹配
g是进行全局匹配
m是进行多行匹配
还有一些用法会之后完善。