最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

JS正則表達式:子表達式,反向引用,search和replace方法,面試題,g,i【詩書畫唱】

2021-04-08 19:27 作者:詩書畫唱  | 我要投稿

概括:

視頻觀看筆記

個人對子表達式的理解和運用

個人對search和replace方法的理解和運用?

個人對g和i的理解和運用

這里的\1,就是反向引用

使用反向引用來檢查一個字符串中是否出現(xiàn)4個相同的數(shù)字

簡單判斷身份證號.html

1、判斷一個7位數(shù)字是否是回文數(shù)字。(子表達式,捕獲,反向引用)12321 56965


2、用js寫一個函數(shù),判斷字符串是否是這樣組成的:第一個必須是字母,后面可以是字母、數(shù)字、下劃線,總長度為5-20。如果符合條件返回1,否則返回0。函數(shù)原型:function checkString(str)



3、以下函數(shù)的功能是查詢?yōu)g覽器url中字符串參數(shù),請補全代碼(這題是面試題

function parseQueryString(name) {

? ? var regexS = "[\\?&]" + name + "=([^&#]*)";

? ? var regx = new RegExp(regexS);

? ? var rs = regx.exec(_____________________________);

? ? if(rs == null) {

? ? ? ? return “”;

? ? }else{

? ? ? ? return ______________;??

? ? }

}

4、用正則表達式實現(xiàn)JS變量命名規(guī)則


5、“我的銀行賬號是xxxxx,我的電話號碼是0731-888888”,將這段文本中的區(qū)號提取出來。

6、從一段文本中找到身份證號碼,然后將生日提取出來。



課堂代碼例子

提醒:

一些題目等等其實只要80%的功能實現(xiàn),正確率就可以,因為一些題目有歧義,同時一些完整功能實現(xiàn)很繁瑣,但其實面試官等等不要求給出繁瑣的答案,他們只是考查部分的答案和實現(xiàn)方法等等你是否知道。

在正則表達式中要先判斷是否是為確定長度的或規(guī)定的數(shù)字等等,如果是,就考慮加^和$。


其實很多都要考慮加^和$。


不加^和$的話,就表示一個字符串含有符合其正則表達式的內(nèi)容就可以。加^和$的話,就表示一個字符串必須是符合其正則表達式的內(nèi)容才可以。

這個就是錯誤寫法
這個是正確寫法

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<script>

var reg = /^(\d)(\d)(\d)\d\3\2\1$/;

console.log(reg.test('1234321'));


//不能以數(shù)字開頭

//以數(shù)字字母下劃線和$

var reg1 = /^[a-zA-Z_$][\w$]*$/;

console.log(reg1.test('a$'));


var reg2 = /^\d{6}(\d{8})\d{3}[\dx]$/;

console.log(reg2.exec(''));

</script>

</head>

<body>

</body>

</html>



面試題:


個人解析:在字符串中是要對問號進行2次轉義的,用2個斜杠,第1個斜桿用于轉義第2個斜杠,而被轉義后的斜杠轉義后面的問號。





視頻觀看筆記 START

個人對子表達式的理解和運用 START

//test方法的值是布爾類型的值

//exec方法返回值是一個數(shù)組

這里的\1,就是反向引用
使用反向引用來檢查一個字符串中是否出現(xiàn)4個相同的數(shù)字



個人對子表達式的理解和運用 END

視頻觀看筆記 END




個人對search和replace方法的理解和運用 START

個人對g和i的理解和運用 START



正則表達式后面加g,在replace方法中體現(xiàn)作用,其他地方很少體現(xiàn)作用:

個人對g和i的理解和運用 END

個人對search和replace方法的理解和運用 END

1、判斷一個7位數(shù)字是否是回文數(shù)字。(子表達式,捕獲,反向引用)12321 56965

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

var reg6 = /^(\d)(\d)(\d)(\d)\3\2\1$/;

var str4 = '3267623';

console.log(reg6.test(str4));

</script>

<body>

</body>

</html>


2、用js寫一個函數(shù),判斷字符串是否是這樣組成的:第一個必須是字母,后面可以是字母、數(shù)字、下劃線,總長度為5-20。如果符合條件返回1,否則返回0。函數(shù)原型:function checkString(str)


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>


/*

?2、用js寫一個函數(shù),判斷字符串是否是這樣組成的:第一個必須是字母,

?后面可以是字母、數(shù)字、下劃線,總長度為5-20。如果符合條件返回1,否則返回0。

?函數(shù)原型:function checkString(str)

*/


function checkString(str){



return /^[a-zA-Z]\w{4,19}$/.test(str) ? 1 : 0;

// return /^[a-zA-Z]\d{4,19}$/.test(str)?console.log(1):console.log(0)

}

// checkString("SSHC666")

</script>

<body>

</body>

</html>


3、以下函數(shù)的功能是查詢?yōu)g覽器url中字符串參數(shù),請補全代碼

function parseQueryString(name) {

? ? var regexS = "[\\?&]" + name + "=([^&#]*)";

? ? var regx = new RegExp(regexS);

? ? var rs = regx.exec(_____________________________);

? ? if(rs == null) {

? ? ? ? return “”;

? ? }else{

? ? ? ? return ______________;??

? ? }

}


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>


/*

3、以下函數(shù)的功能是查詢?yōu)g覽器url中字符串參數(shù),請補全代碼

function parseQueryString(name) {

? ? var regexS = "[\\?&]" + name + "=([^&#]*)";

? ? var regx = new RegExp(regexS);

? ? var rs = regx.exec(_____________________________);

? ? if(rs == null) {

? ? ? ? return “”;

? ? }else{

? ? ? ? return ______________;??

? ? }

}

*/

function parseQueryString(name) {

? ? var regexS = "[\\?&]" + name + "=([^&#]*)";

? ? var regx = new RegExp(regexS);

? ? var rs = regx.exec("http://localhost:8080/JavaWebProgram?act=詩書畫唱&pwd=666888");

? ? if(rs == null) {

? ? ? ? return "";

? ? }else{

? ? ? ? return rs[1];??

? ? }

}


/* 測試語句:console.log(parseQueryString('act'));

console.log(parseQueryString('pwd'));*/

</script>

<body>

</body>

</html>



4、用正則表達式實現(xiàn)JS變量命名規(guī)則

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

/*

4、用正則表達式實現(xiàn)JS變量命名規(guī)則*/


/*變量命名規(guī)則如下:

1、變量命名必須以字母、下劃線”_”或者”$”為開頭。其他字符可以是字母、_、美元符號或數(shù)字。

2、變量名中不允許使用空格和其他標點符號,首個字不能為數(shù)字。

3、變量名長度不能超過255個字符。

4、變量名區(qū)分大小寫。(javascript是區(qū)分大小寫的語言)

5、變量名必須放在同一行中

6、不能使用腳本語言中保留的關鍵字、保留字、true、false 和 null 作為標識符。

截止到目前為止JS描述了一組具有特定用途的關鍵字,一般用于控制語句的開始或結束,

或者用于執(zhí)行特定的操作等。關鍵字也是語言保留的,不能用作標識符。

if for switch? case? break? continue? while? var? function

*/



/*關鍵字和保留字太多了,我只規(guī)定了部分關鍵字和保留字不能是js變量名,如果

?想js變量名不包含關鍵字和保留字,下面的/^(if|for|switch|case|break|continue|while

|var|function|true|false|null)$/.test(str)==false中的

?^和$就別加上*/

function isJsName(str){


return /^([a-zA-Z]|_|\$)[\w|$]{0,255}$/.test(str)==true

&&(/^(if|for|switch|case|break|continue|while|var|function|true|false|null)$/.test(str)==false)??

'符合JS變量命名規(guī)則':'不符合JS變量命名規(guī)則';


}


console.log(isJsName('$11'));

</script>

<body>

</body>

</html>


5、“我的銀行賬號是xxxxx,我的電話號碼是0731-888888”,將這段文本中的區(qū)號提取出來。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

/*


5、'我的銀行賬號是xxxxx,我的電話號碼是0731-888888',將這段文本中的區(qū)號提取出來。*/

var z = /\d{4}/;

var s = '我的銀行賬號是xxxxx,我的電話號碼是0731-888888';

var arr=z.exec(s);

console.log(arr[0]);

</script>

<body>

</body>

</html>



6、從一段文本中找到身份證號碼,然后將生日提取出來。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

/*


6、從一段文本中找到身份證號碼,然后將生日提取出來。*/



/*身份證號碼為15位或者18位,15位時全為數(shù)字,18位前17位為數(shù)字,最后一位是校驗位,可能為數(shù)字或字符X

?

?/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/? */


var reg = /(\d{17}(\d|X|x))/;?

var s ='身份證號碼:66666620070717561x';

var arr=reg.exec(s);

console.log(arr[0].slice(6,14));


//.slice(7,13)

</script>

<body>


</body>

</html>

簡單判斷身份證號.html



<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<script>

function isCard(card)?

{?

/*

?

?這里做簡單的驗證,真正0誤差的驗證很長,暫時不寫。

?

?身份證號碼的編排規(guī)則:(1)前1、2位數(shù)字表示:所在省份的代碼;?

?(2)第3、4位數(shù)字表示:所在城市的代碼;?

?(3)第5、6位數(shù)字表示:所在區(qū)縣的代碼;?

?(4)第7~14位數(shù)字表示:出生年、月、日;?

?(5)第15、16位數(shù)字表示:所在地的派出所的代碼;?

?(6)第17位數(shù)字表示性別:奇數(shù)表示男性,偶數(shù)表示女性;?

?(7)第18位數(shù)字是校檢碼:

?也有的說是個人信息碼,一般是隨計算機的隨機產(chǎn)生, 用來檢驗身份證的正確性。

?校檢碼可以是0~9的數(shù)字,有時也用x表示。*/




/*身份證號碼為15位或者18位,15位時全為數(shù)字,18位前17位為數(shù)字,最后一位是校驗位,可能為數(shù)字或字符X*/

var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;?


if(reg.test(card) === false)?

{?


return "身份證輸入不合法";?

}?


else{



return "身份證輸入合法";

}

}


console.log(isCard("66666620070717561x"))


</script>

<body>

</body>

</html>

課堂代碼例子 START

<!DOCTYPE html>

<html>


<head>

<meta charset="UTF-8">

<title></title>

<script>

var s1 = /^ah+u$/;

var s2 = 'ahhhu';

//test方法的值是布爾類型的值

//console.log(s1.test(s2));

//exec方法返回值是一個數(shù)組

var reg1 = /[a-z]=(\d)/;

//console.log(reg1.test('nunenfbe=8yhgg'));

var rs = reg1.exec('pwd=123');

console.log('匹配的字符串片段是:' + rs[0]);

console.log('從下標為:' + rs['index'] + '的地方開始匹配');

console.log('被第一個子表達式捕獲的值是:' + rs[1]);

console.log(rs);


var reg2 = /0731-?(\d{8})/;

? ? ? ? ? ? rs = reg2.exec('abc07318675458812345');

? ? ? ? ? ? console.log(rs[1]);

function parseQueryString(name) {

name = name.replace(/[\[]/,'\\[');

? ? var regexS = '[\\?&]' + name + '=([^&#]*)';

var regx = new RegExp(regexS);

var rs = regx.exec('http://localhost:8888/demo?act=admin&pwd=123');

? ? if(rs == null) {

return '';

}else{

? ? return rs[1];??

}

}

//console.log(parseQueryString('act'));

//console.log(parseQueryString('pwd'));


//普通字符串的兩個跟正則表達式有關系的方法

//i:忽略大小寫

//g:全字符串搜索

var reg3 = /[aeiou]/g;

var str1 = 'hello world';

//查找str1字符串中出現(xiàn)了aeiou字符的地方

console.log(str1.search(reg3));

//將str1字符串中出現(xiàn)的aeiou字符全部替換成@

console.log(str1.replace(reg3,'@'));


var reg4 = /co+m/i;

var str2 = 'www.Com';

console.log(str2.search(reg4));

console.log(str2.replace(reg4,'cn'));


var reg5 = /(\d)(\d)\d\1/;

var str3 = 'a3563b';

//reg5.test(str3);//\1=8,\2=6

//在表達式中再次使用\1中的值時就叫反向引用

//檢查一個字符串中是否出現(xiàn)四個相同的數(shù)字

var reg6 = /(\d)\1{3}/;

var str4 = 'oip77755555321a';

console.log(reg6.test(str4));

//判斷輸入的五位數(shù)字是不是回文數(shù)字

</script>

</head>


<body>

</body>


</html>

課堂代碼例子 END


JS正則表達式:子表達式,反向引用,search和replace方法,面試題,g,i【詩書畫唱】的評論 (共 條)

分享到微博請遵守國家法律
沁阳市| 巴彦淖尔市| 惠水县| 临海市| 南康市| 万载县| 龙江县| 台东市| 霍林郭勒市| 定南县| 枣强县| 乌拉特前旗| 青铜峡市| 呼伦贝尔市| 吴旗县| 湘潭县| 岑溪市| 清远市| 廉江市| 平顶山市| 新丰县| 建始县| 石狮市| 宕昌县| 礼泉县| 玉林市| 漯河市| 武义县| 绥江县| 鄂托克旗| 东丽区| 镇巴县| 景泰县| 綦江县| 宣化县| 永仁县| 昭苏县| 卫辉市| 博客| 和平县| 涿鹿县|