JS正则表达式:邮箱的验证字符串,面试题,子表达式,字面量,内置对象【诗书画唱】
目录:
正则表达式代码部分例子合集
面试题
1、输入的字符串必须包含三个连续的k
2、输入的字符串必须全部是汉字。
3、输入的字符串,必须以http或者https开头,以.com结尾
4、写出邮箱的验证字符串
5、输入的账号必须是数字字母下划线组成,并且长度在6到30位之间
6、输入的必须是数字,不能以0开头
7、输入的字符串必须以let或者ing结尾。
面试题(注释的部分是比较繁琐的写法,红色的部分是简洁的写法,代码很多时候是越简洁越好,因为这样的项目等等占内存等等小,简洁的优点在我看来,就好比用户都喜欢下载相同功能且占内存小的APP等等):

function checkString(str){
// var reg = /^[a-zA-Z]\w{4,19}$/;
//if(reg.test(str)) {
// return 1;
// } else {
// return 0;
// }
// return reg.test(str) ? 1 : 0;
return /^[a-zA-Z]\w{4,19}$/.test(str) ? 1 : 0;
}

正则表达式代码部分例子合集 START

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
//在js中声明正则表达式
//1字面量(推荐)
var o = {};
var a = [];
var f = function(){};
var r = /47/;
//2内置对象
var o1 = new Object();
var a1 = new Array();
var f1 = new Function();
var r1 = new RegExp('47');
//正则表达式中的一些特殊的字符
//^,$表示字符串以什么开头以什么结尾
var reg1 = /^mop$/;
//检测一个字符串是否符合正则表达式
console.log(reg1.test('mop'));
//?,*,+都是用来描述字符(串)出现的次数的
//?表示出现的次数是0次或者1次
var reg2 = /^pw?k$/;
console.log(reg2.test('pwwwwwwk'));
//*表示出现的次数是0次或者多次
var reg3 = /^97*0$/;
console.log(reg3.test('9770'));
//+表示出现的次数是1次或者多次
var reg4 = /^rf+6$/;
console.log(reg4.test('rfffff6'));
//用()括起来的内容就叫子表达式
var reg5 = /^(http)s?(com)$/;
console.log(reg5.test('httpsscom'));
//.表示除了换行符\n以外的任意的其他单字符
var reg6 = /^(mail).*(cn)$/;
console.log(reg6.test('mail+nmpcn'));
//|表示多选一
var reg7 = /^(139|159|187)3?m$/;
console.log(reg7.test('1593m'));
//表示数字[0-9],\d
var reg8 = /^h\d+b$/;
//var reg8 = /^h[0-9]+b$/;
console.log(reg8.test('h93743774b'));
//表示大小写字母[a-z],[A-Z],[a-zA-Z]
var reg9 = /^1[A-Z]*0$/;
console.log(reg9.test('1ABC0'));
//表示字母数字和下划线[0-9a-zA-Z_],\w
var reg10 = /^[a-zA-Z_$][\w$]*$/;
console.log(reg10.test('$$'));
//以f开头,t结尾,必须出现两个o
var reg11 = /^fo{2}t$/;
console.log(reg11.test('foot'));
//以f开头,t结尾,o出现的次数必须多于等于2次
var reg12 = /^fo{2,}t$/;
console.log(reg12.test('foot'));
//账号的长度是6到30位,必须是字母数字下划线
var reg13 = /^\w{6,30}$/;
console.log(reg13.test('admin123'));
//转义符
//输入的数字是一个两位小数,总长度是4个数字
var reg14 = /^[1-9]\d\.\d{2}$/;
console.log(reg14.test('21.33'));
//输入一个加法不等式,+号两边各有一个一位数字
var reg15 = /^\d\+\d$/;
console.log(reg15.test('1+1'));
//如果正则表达式中出现了+,*,?,.等有特殊含义的字符就必须用\进行转义
//^的作用:1以什么开头2排除
//输入的字符串不能以m开头
var reg16 = /^[^m]$/;
console.log(reg16.test('lm'));
function checkString(str){
// var reg = /^[a-zA-Z]\w{4,19}$/;
// if(reg.test(str)) {
// return 1;
// } else {
// return 0;
// }
// return reg.test(str) ? 1 : 0;
return /^[a-zA-Z]\w{4,19}$/.test(str) ? 1 : 0;
}
</script>
</head>
<body>
</body>
</html>

正则表达式代码部分例子合集 END


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script>
var s=/^1给诗书画唱三连9$/;
var s2="OK"
var r=s.test(s2);
console.log(r)
var s=/^1p?9$/;//这里的p?表示任意个p
var s2="OK"
var r=s.test(s2);
console.log(r)
var s=/^1p*9$/;//*表示出现的次数是0次或者多次
var s2="OK"
var r=s.test(s2);
console.log(r)
var s=/^[a-zA-Z]\w{4,19}$/;
//\w{4,19}$表示4到19长度的以字母下划线为结尾。代码写得越简短越好,不用$就表示不一定是\w结尾
var s2="a1111"
var r=s.test(s2);
console.log(r)
</script>
<body>
</body>
</html>


1、输入的字符串必须包含三个连续的k

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script>
var reg = /k{3}/;
console.log(reg.test('kakk'));
</script>
<body>
</body>
</html>

2、输入的字符串必须全部是汉字。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script>
console.log(/^[\u4e00-\u9fa5]+$/.test('给诗书画唱三连'));
/*“\u4e00-\u9fa5”是unicode编码,一种全世界语言都包括的一种编码。
(国际化功能中常常用到),\u4e00-\u9fa5是用来判断是不是中文的一个条件。*/
</script>
<body>
</body>
</html>

3、输入的字符串,必须以http或者https开头,以.com结尾

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script>
/*3、输入的字符串,必须以http或者https开头,以.com结尾
.表示除了换行符\n以外的任意的其他单字符
*表示出现的次数是0次或者多次 */
console.log(/^(http|https).*\.com$/.test('https://zhidao.baidu.com'));
</script>
<body>
</body>
</html>

4、写出邮箱的验证字符串

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script>
//判断用户输入的电子邮箱格式是否正确
console.log(/^[a-zA-Z0-9_-]+@([a-zA-Z0-9]+\.)+(com|cn|net|org)$/.test('sl@qq.com'));
</script>
<body>
</body>
</html>

5、输入的账号必须是数字字母下划线组成,并且长度在6到30位之间

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script>
/*5、输入的账号必须是数字字母下划线组成,并且长度在6到30位之间*/
console.log(/^\w{6,30}$/.test('666三连啊'));
</script>
<body>
</body>
</html>

6、输入的必须是数字,不能以0开头

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script>
console.log(/^[1-9]\d*$/.test("666"));
</script>
<body>
</body>
</html>

7、输入的字符串必须以let或者ing结尾。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script>
console.log(/(let|ing)$/.test("let666ing"));
</script>
<body>
</body>
</html>

