亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

JavaScript 正則表達(dá)式

語法

定義

JavaScript種正則表達(dá)式有兩種定義方式,定義一個(gè)匹配類似 <%XXX%> 的字符串

1. 構(gòu)造函數(shù)

var reg=new RegExp('<%[^%>]+%>','g');

2. 字面量

var reg=/<%[^%>]%>/g;

g: global,全文搜索,默認(rèn)搜索到第一個(gè)結(jié)果接停止

i: ingore case,忽略大小寫,默認(rèn)大小寫敏感

m: multiple lines,多行搜索(更改^ 和$的含義,使它們分別在任意一行對(duì)待行首和行尾匹配,而不僅僅在整個(gè)字符串的開頭和結(jié)尾匹配)


元字符

正則表達(dá)式讓人望而卻步以一個(gè)重要原因就是其轉(zhuǎn)義字符太多了,組合非常之多,但是正則表達(dá)式的元字符(在正則表達(dá)式中具有特殊意義的專用字符,可以用來規(guī)定其前導(dǎo)字符)并不多

元字符:( [ { \ ^ $ | ) ? * + .

并不是每個(gè)元字符都有其特定意義,在不同的組合中元字符有不同的意義,分類看一下

預(yù)定義特殊字符

字符    含義    

\t    水平制表符    

\r    回車符    

\n    換行符    

\f    換頁符    

\cX    與X對(duì)應(yīng)的控制字符(Ctrl+X)    

\v    垂直制表符    

\0    空字符    


字符類

簡單類

原則上正則的一個(gè)字符對(duì)應(yīng)一個(gè)字符,我們可以用[]把它們括起來,讓[]這個(gè)整體對(duì)應(yīng)一個(gè)字符。如


alert(/ruby/.test("ruby"));//true

alert(/[abc]/.test("a"));//true

alert(/[abc]/.test("b"));//true

alert(/[abc]/.test("c"));//true

alert("a bat ,a Cat,a fAt bat ,a faT cat".match(/[bcf]at/gi));//bat,Cat,fAt,bat,faT,cat


 負(fù)向類

也是在那個(gè)括號(hào)里做文章,前面加個(gè)元字符進(jìn)行取反,表示匹配不能為括號(hào)里面的字符。

alert(/[^abc]/.test("a"));//false

alert(/[^abc]/.test("b"));//false

alert(/[^abc]/.test("6"));//true

alert(/[^abc]/.test("gg"));//true

   

范圍類

還是在那個(gè)中括號(hào)里面做文章。有時(shí)匹配的東西過多,而且類型又相同,全部輸入太麻煩,我們可以用它。特征就是在中間加了個(gè)橫線。

組合類

還是在那個(gè)中括號(hào)里面做文章。允許用中括號(hào)匹配不同類型的單個(gè)字符。

alert(/[a-f]/.test("b"));//true

alert(/[a-f]/.test("k"));//false

alert(/[a-z]/.test("h"));//true

alert(/[A-Z]/.test("gg"));//false

alert(/[^H-Y]/.test("G"));//true

alert(/[0-9]/.test("8"));//true

alert(/[^7-9]/.test("6"));//true

alert(/[a-m1-5\n]/.test("a"))//true

alert(/[a-m1-5\n]/.test("3"))//true

alert(/[a-m1-5\n]/.test(a))//true

alert(/[a-m1-5\n]/.test("r"))//false


預(yù)定義類   


字符    等同于      描述


.    [^\n\r]    除了換行和回車之外的任意字符    

\d    [0-9]    數(shù)字字符    

\D    [^0-9]    非數(shù)字字符    

\s    [ \t\n\x0B\f\r]    空白字符    

\S    [^ \t\n\x0B\f\r]    非空白字符    

\w    [a-zA-Z_0-9]    單詞字符(所有的字母)    

\W    [^a-zA-Z_0-9]    非單詞字符    


alert(/\d/.test("3"))//true

alert(/\d/.test("w"))//false

alert(/\D/.test("w"))//true

alert(/\w/.test("w"))//true

alert(/\w/.test("司"))//false

alert(/\W/.test("徒"))//true

alert(/\s/.test(" "))//true

alert(/\S/.test(" "))//false

alert(/\S/.test("正"))//true

alert(/./.test("美"))//true

alert(/./.test("  "))//true

alert(/./.test(a))//true


支持正則表達(dá)式的String對(duì)象的方法

  1. search()方法;

該方法用于檢索字符串中指定的子字符串,或檢索與正 則表達(dá)式相匹配的字符串。

       基本語法:stringObject.search(regexp);

      @param 參數(shù)regexp可以需要在stringObject中檢索的字符串,也可以 是需要檢索的RegExp對(duì)象。

      @return(返回值) stringObject中第一個(gè)與regexp對(duì)象相匹配的子串的起 始位置。如果沒有找到任何匹配的子串,則返回-1;

    注意:search()方法不執(zhí)行全局匹配,它將忽略標(biāo)志g,同時(shí)它也沒有regexp對(duì)象的lastIndex的屬性,且總是從字符串開始位置進(jìn)行查找,總是返回的是stringObject匹配的第一個(gè)位置。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">點(diǎn)擊</button>
<p id="demo"></p>
<script>
function myFunction() {
    var str = "Visit W3cSchool!"; 
    var n = str.search(/3c/i);
    document.getElementById("demo").innerHTML = n;
}
</script>
</body>
</html>

  2. match()方法;

該方法用于在字符串內(nèi)檢索指定的值,或找到一個(gè)或者多個(gè)正則表達(dá)式的匹配。該方法類似于indexOf()或者lastIndexOf(); 但是它返回的是指定的值,而不是字符串的位置;

基本語法:

   stringObject.match(searchValue) 或者stringObject.match(regexp)

   @param(參數(shù)) 

   searchValue 需要檢索字符串的值;

    regexp: 需要匹配模式的RegExp對(duì)象;

   @return(返回值) 存放匹配成功的數(shù)組; 它可以全局匹配模式,全局匹配的話,它返回的是一個(gè)數(shù)組。如果沒有找到任何的一個(gè)匹配,那么它將返回的是null;返回的數(shù)組內(nèi)有三個(gè)元素,第一個(gè)元素的存放的是匹配的文本,還有二個(gè)對(duì)象屬性;index屬性表明的是匹配文本的起始字符在stringObject中的位置;input屬性聲明的是對(duì)stringObject對(duì)象的引用;

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">點(diǎn)擊</button>
<p id="demo"></p>
<script>
function myFunction() {
    var str = "hello world"; 
    var n = str.match("world");
    document.getElementById("demo").innerHTML = n;
}
</script>
</body>
</html>

  3. replace()方法:

該方法用于在字符串中使用一些字符替換另一些字符,或者替換一個(gè)與正則表達(dá)式匹配的子字符串;

    基本語法:stringObject.replace(regexp/substr,replacement);

   @param(參數(shù)) 

    regexp/substr; 字符串或者需要替換模式的RegExp對(duì)象。

    replacement:一個(gè)字符串的值,被替換的文本或者生成替換文本的函數(shù)。

   @return(返回值)  返回替換后的新字符串

   注意:字符串的stringObject的replace()方法執(zhí)行的是查找和替換操作,替換的模式有2種,既可以是字符串,也可以是正則匹配模式,如果是正則匹配模式的話,那么它可以加修飾符g,代表全局替換,否則的話,它只替換第一個(gè)匹配的字符串;

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">點(diǎn)我</button>
<p id="demo">請?jiān)L問網(wǎng)站</p>
<script>
function myFunction() {
    var str = document.getElementById("demo").innerHTML; 
    var txt = str.replace("網(wǎng)站","php.cn");
    document.getElementById("demo").innerHTML = txt;
}
</script>
</body>
</html>

 

RegExp對(duì)象方法

1. test()方法:

該方法用于檢測一個(gè)字符串是否匹配某個(gè)模式;

   基本語法:RegExpObject.test(str);

   @param(參數(shù)) str是需要檢測的字符串;

   @return (返回值) 如果字符串str中含有與RegExpObject匹配的文本的話,返回true,否則返回false;

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<script>
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
</script>
</body>
</html>

2. exec()方法: 

該方法用于檢索字符串中的正則表達(dá)式的匹配。

 基本語法:RegExpObject.exec(string)

@param(參數(shù)):string【必填項(xiàng)】要檢索的字符串。

@return(返回值):返回一個(gè)數(shù)組,存放匹配的結(jié)果,如果未找到匹配,則返回值為null;

注意:該返回的數(shù)組的第一個(gè)元素是與正則表達(dá)式相匹配的文本,該方法還返回2個(gè)屬性,index屬性聲明的是匹配文本的第一個(gè)字符的位置;input屬性則存放的是被檢索的字符串string;該方法如果不是全局的話,返回的數(shù)組與match()方法返回的數(shù)組是相同的。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<script>
var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));
</script>
</body>
</html>


Weiter lernen
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <button onclick="myFunction()">點(diǎn)我</button> <p id="demo">請?jiān)L問網(wǎng)站</p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var txt = str.replace("網(wǎng)站","php.cn"); document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
einreichenCode zurücksetzen