JS正則表達式:郵箱的驗證字符串,面試題,子表達式,字面量,內(nèi)置對象【詩書畫唱】
目錄:
正則表達式代碼部分例子合集
面試題
1、輸入的字符串必須包含三個連續(xù)的k
2、輸入的字符串必須全部是漢字。
3、輸入的字符串,必須以http或者https開頭,以.com結(jié)尾
4、寫出郵箱的驗證字符串
5、輸入的賬號必須是數(shù)字字母下劃線組成,并且長度在6到30位之間
6、輸入的必須是數(shù)字,不能以0開頭
7、輸入的字符串必須以let或者ing結(jié)尾。
面試題(注釋的部分是比較繁瑣的寫法,紅色的部分是簡潔的寫法,代碼很多時候是越簡潔越好,因為這樣的項目等等占內(nèi)存等等小,簡潔的優(yōu)點在我看來,就好比用戶都喜歡下載相同功能且占內(nèi)存小的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內(nèi)置對象
var o1 = new Object();
var a1 = new Array();
var f1 = new Function();
var r1 = new RegExp('47');
//正則表達式中的一些特殊的字符
//^,$表示字符串以什么開頭以什么結(jié)尾
var reg1 = /^mop$/;
//檢測一個字符串是否符合正則表達式
console.log(reg1.test('mop'));
//?,*,+都是用來描述字符(串)出現(xiàn)的次數(shù)的
//?表示出現(xiàn)的次數(shù)是0次或者1次
var reg2 = /^pw?k$/;
console.log(reg2.test('pwwwwwwk'));
//*表示出現(xiàn)的次數(shù)是0次或者多次
var reg3 = /^97*0$/;
console.log(reg3.test('9770'));
//+表示出現(xiàn)的次數(shù)是1次或者多次
var reg4 = /^rf+6$/;
console.log(reg4.test('rfffff6'));
//用()括起來的內(nèi)容就叫子表達式
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'));
//表示數(shù)字[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'));
//表示字母數(shù)字和下劃線[0-9a-zA-Z_],\w
var reg10 = /^[a-zA-Z_$][\w$]*$/;
console.log(reg10.test('$$'));
//以f開頭,t結(jié)尾,必須出現(xiàn)兩個o
var reg11 = /^fo{2}t$/;
console.log(reg11.test('foot'));
//以f開頭,t結(jié)尾,o出現(xiàn)的次數(shù)必須多于等于2次
var reg12 = /^fo{2,}t$/;
console.log(reg12.test('foot'));
//賬號的長度是6到30位,必須是字母數(shù)字下劃線
var reg13 = /^\w{6,30}$/;
console.log(reg13.test('admin123'));
//轉(zhuǎn)義符
//輸入的數(shù)字是一個兩位小數(shù),總長度是4個數(shù)字
var reg14 = /^[1-9]\d\.\d{2}$/;
console.log(reg14.test('21.33'));
//輸入一個加法不等式,+號兩邊各有一個一位數(shù)字
var reg15 = /^\d\+\d$/;
console.log(reg15.test('1+1'));
//如果正則表達式中出現(xiàn)了+,*,?,.等有特殊含義的字符就必須用\進行轉(zhuǎn)義
//^的作用: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$/;//*表示出現(xiàn)的次數(shù)是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長度的以字母下劃線為結(jié)尾。代碼寫得越簡短越好,不用$就表示不一定是\w結(jié)尾
var s2="a1111"
var r=s.test(s2);
console.log(r)
</script>
<body>
</body>
</html>


1、輸入的字符串必須包含三個連續(xù)的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結(jié)尾

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script>
/*3、輸入的字符串,必須以http或者https開頭,以.com結(jié)尾
?
? .表示除了換行符\n以外的任意的其他單字符
?
? *表示出現(xiàn)的次數(shù)是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、輸入的賬號必須是數(shù)字字母下劃線組成,并且長度在6到30位之間

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script>
/*5、輸入的賬號必須是數(shù)字字母下劃線組成,并且長度在6到30位之間*/
console.log(/^\w{6,30}$/.test('666三連啊'));
</script>
<body>
</body>
</html>

6、輸入的必須是數(shù)字,不能以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結(jié)尾。

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

