1.1 RegExp對(duì)象實(shí)例的創(chuàng)建
正則表達(dá)式模式:
g:表示全局模式,即模式將被用于整個(gè)字符串,而非發(fā)現(xiàn)第一個(gè)匹配項(xiàng)時(shí)立即停止;
i:表示不區(qū)分大小寫(xiě),忽略大小寫(xiě);
m:表示多行模式;
所有元字符都必須轉(zhuǎn)義,元字符:“(”、 “)”、 “[”、 “]”、 “{”、 “}”、 “\”、 “^”、 “$”、 “?”、 “*”、 “.”
創(chuàng)建一個(gè)正則表達(dá)式可以:
var expression1 = /pattern /flags ;
var expression2 = new RegExp("pattern","flags");
var exp1 = /[bc]at/i;
var exp2 = new RegExp("[bc]at","i"); // 與exp1是等價(jià)的
1.2 RegExp實(shí)例屬性
每個(gè)RegExp實(shí)例都具有以下屬性:
global:布爾值,表示是否設(shè)置了 g 標(biāo)志;
ignoreCase:布爾值,表示是否設(shè)置了 i 標(biāo)志;
lastIndex:正數(shù),表示開(kāi)始搜索下一個(gè)匹配項(xiàng)的字符位置,從0算起;
multiline:布爾值,表示是否設(shè)置 m 標(biāo)志;
source:正則表達(dá)式的字符串表示,按照字面量形式而非傳入構(gòu)造函數(shù)的字符串模式返回,如:“[bc]at” ;
1.3 正則表達(dá)式全部符號(hào)解釋
字符
描述
\
將下一個(gè)字符標(biāo)記為一個(gè)特殊字符、或一個(gè)原義字符、或一個(gè) 向后引用、或一個(gè)八進(jìn)制轉(zhuǎn)義符。例如,'n' 匹配字符 "n"。'\n' 匹配一個(gè)換行符。序列 '\\' 匹配 "\" 而 "\(" 則匹配 "("。
^
匹配輸入字符串的開(kāi)始位置。如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性,^ 也匹配 '\n' 或 '\r' 之后的位置。
$
匹配輸入字符串的結(jié)束位置。如果設(shè)置了RegExp 對(duì)象的 Multiline 屬性,$ 也匹配 '\n' 或 '\r' 之前的位置。
*
匹配前面的子表達(dá)式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等價(jià)于{0,}。
+
匹配前面的子表達(dá)式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價(jià)于 {1,}。
?
匹配前面的子表達(dá)式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等價(jià)于 {0,1}。
{n}
n 是一個(gè)非負(fù)整數(shù)。匹配確定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的兩個(gè) o。
{n,}
n 是一個(gè)非負(fù)整數(shù)。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等價(jià)于 'o+'。'o{0,}' 則等價(jià)于 'o*'。
{n,m}
m 和 n 均為非負(fù)整數(shù),其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 將匹配 "fooooood" 中的前三個(gè) o。'o{0,1}' 等價(jià)于 'o?'。請(qǐng)注意在逗號(hào)和兩個(gè)數(shù)之間不能有空格。
?
當(dāng)該字符緊跟在任何一個(gè)其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面時(shí),匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜索的字符串,而默認(rèn)的貪婪模式則盡可能多的匹配所搜索的字符串。例如,對(duì)于字符串 "oooo",'o+?' 將匹配單個(gè) "o",而 'o+' 將匹配所有 'o'。
.
匹配除 "\n" 之外的任何單個(gè)字符。要匹配包括 '\n' 在內(nèi)的任何字符,請(qǐng)使用象 '[.\n]' 的模式。
(pattern)
匹配 pattern 并獲取這一匹配。所獲取的匹配可以從產(chǎn)生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中則使用 $0…$9 屬性。要匹配圓括號(hào)字符,請(qǐng)使用 '\(' 或 '\)'。
(?:pattern)
匹配 pattern 但不獲取匹配結(jié)果,也就是說(shuō)這是一個(gè)非獲取匹配,不進(jìn)行存儲(chǔ)供以后使用。這在使用 "或" 字符 (|) 來(lái)組合一個(gè)模式的各個(gè)部分是很有用。例如, 'industr(?:y|ies) 就是一個(gè)比 'industry|industries' 更簡(jiǎn)略的表達(dá)式。
(?=pattern)
正向預(yù)查,在任何匹配 pattern 的字符串開(kāi)始處匹配查找字符串。這是一個(gè)非獲取匹配,也就是說(shuō),該匹配不需要獲取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。預(yù)查不消耗字符,也就是說(shuō),在一個(gè)匹配發(fā)生后,在最后一次匹配之后立即開(kāi)始下一次匹配的搜索,而不是從包含預(yù)查的字符之后開(kāi)始。
(?!pattern)
負(fù)向預(yù)查,在任何不匹配 pattern 的字符串開(kāi)始處匹配查找字符串。這是一個(gè)非獲取匹配,也就是說(shuō),該匹配不需要獲取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。預(yù)查不消耗字符,也就是說(shuō),在一個(gè)匹配發(fā)生后,在最后一次匹配之后立即開(kāi)始下一次匹配的搜索,而不是從包含預(yù)查的字符之后開(kāi)始
x|y
匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 則匹配 "zood" 或 "food"。
[xyz]
字符集合。匹配所包含的任意一個(gè)字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。
[^xyz]
負(fù)值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。
[a-z]
字符范圍。匹配指定范圍內(nèi)的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范圍內(nèi)的任意小寫(xiě)字母字符。
[^a-z]
負(fù)值字符范圍。匹配任何不在指定范圍內(nèi)的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范圍內(nèi)的任意字符。
\b
匹配一個(gè)單詞邊界,也就是指單詞和空格間的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\B
匹配非單詞邊界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
\cx
匹配由 x 指明的控制字符。例如, \cM 匹配一個(gè) Control-M 或回車(chē)符。x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個(gè)原義的 'c' 字符。
\d
匹配一個(gè)數(shù)字字符。等價(jià)于 [0-9]。
\D
匹配一個(gè)非數(shù)字字符。等價(jià)于 [^0-9]。
\f
匹配一個(gè)換頁(yè)符。等價(jià)于 \x0c 和 \cL。
\n
匹配一個(gè)換行符。等價(jià)于 \x0a 和 \cJ。
\r
匹配一個(gè)回車(chē)符。等價(jià)于 \x0d 和 \cM。
\s
匹配任何空白字符,包括空格、制表符、換頁(yè)符等等。等價(jià)于 [ \f\n\r\t\v]。
\S
匹配任何非空白字符。等價(jià)于 [^ \f\n\r\t\v]。
\t
匹配一個(gè)制表符。等價(jià)于 \x09 和 \cI。
\v
匹配一個(gè)垂直制表符。等價(jià)于 \x0b 和 \cK。
\w
匹配包括下劃線的任何單詞字符。等價(jià)于'[A-Za-z0-9_]'。
\W
匹配任何非單詞字符。等價(jià)于 '[^A-Za-z0-9_]'。
\xn
匹配 n,其中 n 為十六進(jìn)制轉(zhuǎn)義值。十六進(jìn)制轉(zhuǎn)義值必須為確定的兩個(gè)數(shù)字長(zhǎng)。例如,'\x41' 匹配 "A"。'\x041' 則等價(jià)于 '\x04' & "1"。正則表達(dá)式中可以使用 ASCII 編碼。.
\num
匹配 num,其中 num 是一個(gè)正整數(shù)。對(duì)所獲取的匹配的引用。例如,'(.)\1' 匹配兩個(gè)連續(xù)的相同字符。
\n
標(biāo)識(shí)一個(gè)八進(jìn)制轉(zhuǎn)義值或一個(gè)向后引用。如果 \n 之前至少 n 個(gè)獲取的子表達(dá)式,則 n 為向后引用。否則,如果 n 為八進(jìn)制數(shù)字 (0-7),則 n 為一個(gè)八進(jìn)制轉(zhuǎn)義值。
\nm
標(biāo)識(shí)一個(gè)八進(jìn)制轉(zhuǎn)義值或一個(gè)向后引用。如果 \nm 之前至少有 nm 個(gè)獲得子表達(dá)式,則 nm 為向后引用。如果 \nm 之前至少有 n 個(gè)獲取,則 n 為一個(gè)后跟文字 m 的向后引用。如果前面的條件都不滿(mǎn)足,若 n 和 m 均為八進(jìn)制數(shù)字 (0-7),則 \nm 將匹配八進(jìn)制轉(zhuǎn)義值 nm。
\nml
如果 n 為八進(jìn)制數(shù)字 (0-3),且 m 和 l 均為八進(jìn)制數(shù)字 (0-7),則匹配八進(jìn)制轉(zhuǎn)義值 nml。
\un
匹配 n,其中 n 是一個(gè)用四個(gè)十六進(jìn)制數(shù)字表示的 Unicode 字符。例如, \u00A9 匹配版權(quán)符號(hào) (?)。
1.4 RegExp實(shí)例方法
1)exec()
該方法是專(zhuān)門(mén)為捕獲組而設(shè)計(jì)的。exec() 接受一個(gè)參數(shù),即要應(yīng)用模式的字符串,然后返回包含第一個(gè)匹配項(xiàng)信息的數(shù)組;或者在沒(méi)有匹配項(xiàng)的情況下返回null。返回的數(shù)組雖然是Array實(shí)例,但有連個(gè)額外的屬性:index 和 input。其中 index 表示匹配項(xiàng)在字符串中的位置,而 input 表示應(yīng)用正則表達(dá)式的字符串。在數(shù)組中第一項(xiàng)是與整個(gè)模式匹配的字符串,其他項(xiàng)是與模式中捕獲組匹配的字符串(如果模式中沒(méi)有捕獲組,則該數(shù)組只包含一項(xiàng))。
復(fù)制代碼
var text = "mom and dad and baby";
var pattern = /mom( and dad( and baby)?)?/gi;
var matches = pattern.exec(text);
console.log(matches);// 0: "mom and dad and baby", 1: " and dad and baby", 2: " and baby", groups: undefined, index: 0, input: "mom and dad and baby", length: 3
console.log(pattern.lastIndex); // 20
matches = pattern.exec(text);
console.log(matches); //null
console.log(pattern.lastIndex); // 0
text = "vat ,bat, sat, fat";
var pattern1 = /.at/;
var matches = pattern1.exec(text);
console.log(matches.index); //0
console.log(matches); //0: "vat", groups: undefined, index: 0, input: "vat ,vat, sat, fat", length: 1
console.log(pattern1.lastIndex); //0
matches = pattern1.exec(text);
console.log(matches.index); //0
console.log(matches); //0: "vat", groups: undefined, index: 0, input: "vat ,vat, sat, fat", length: 1
console.log(pattern1.lastIndex); //0
var pattern2 = /.at/g;
matches = pattern2.exec(text);
console.log(matches.index); //0
console.log(matches); //0: "vat", groups: undefined, index: 0, input: "vat ,vat, sat, fat", length: 1
console.log(pattern1.lastIndex); //0
matches = pattern2.exec(text);
console.log(matches.index); //5
console.log(matches); //0: "bat", groups: undefined, index: 5, input: "vat ,vat, sat, fat", length: 1
console.log(pattern1.lastIndex); //0
matches = pattern2.exec(text);
console.log(matches.index); //10
console.log(matches); //0: "sat", groups: undefined, index: 10, input: "vat ,vat, sat, fat", length: 1
console.log(pattern1.lastIndex); //0
復(fù)制代碼
exec() 方法,即使模式設(shè)置了全局表示(g),它每次返回也只是一個(gè)匹配項(xiàng)。沒(méi)有設(shè)置全局標(biāo)志,同一個(gè)字符串調(diào)用多次 exec() 始終返回第一個(gè)匹配項(xiàng)的信息。而設(shè)置了全局標(biāo)志,每次調(diào)用 exec() 都會(huì)在字符串中基礎(chǔ)查找新匹配項(xiàng)。
2)test()
該方法接受一個(gè)字符串參數(shù),在模式與改參數(shù)匹配的情況下返回 true ,否則返回 false。很適用于只想知道目標(biāo)字符串與否與某個(gè)模式匹配,但不許要知道其內(nèi)容的情況。
var text = "000-00-000";
var pattern = /\d{3}-\d{2}-\d{3}/;
if(pattern.test(text)){ //true
console.log("the pattern was matched!"); // 執(zhí)行語(yǔ)句
}
1.5 RegExp對(duì)象的靜態(tài)屬性
靜態(tài)屬性是RegExp這個(gè)內(nèi)置對(duì)象的固有屬性。訪問(wèn)這些靜態(tài)屬性,不需要進(jìn)行聲明實(shí)例化,而是直接調(diào)用。
調(diào)用格式:RegExp.attribute
下面所有屬性的說(shuō)明,就以:
var desc = 'Hello,everyone.My name is gtshen';
reg = /na(.?)/g;
reg.test(desc);
這段代碼測(cè)試為例,進(jìn)行說(shuō)明:
- input
功能:返回當(dāng)前要匹配的字符串
示例: console.log('input:'+RegExp.input) // -> 'Hello,everyone.My name is gtshen'
短名:RegExp.$_;
注意:opera 低版本并不支持。
- lastMatch
功能:最后一次匹配到的匹配項(xiàng),需要開(kāi)啟修飾符-g。
示例: console.log('lastMatch:'+RegExp.lastMatch) // -> nam
短名:RegExp['$&'];
注意:opera 低版本并不支持。
- lastParen
功能:最后一次匹配的捕獲組。需要開(kāi)啟修飾符-g。
示例: console.log('lastParen:'+RegExp.lastParen) // -> 'm';
短名:RegExp['$+'];
注意:opera 低版本并不支持。
- leftContext
功能:以當(dāng)前匹配到的子串為上下文,返回之前的子串。
示例: console.log('leftContext:'+RegExp.leftContext) // -> 'Hello,everyone.My ';
短名:RegExp['$&`'];
- rightContext
功能:以當(dāng)前匹配到的子串為上下文,返回之后的子串。
示例: console.log('rightContext:'+RegExp.rightContext) // -> 'e is gtshen';
短名:RegExp['$\''];
- multiline
功能:是否支持多行。返回值為boolean值,true表示支持,false表示不支持。
示例: console.log('multiline:'+RegExp.multiline);
短名:RegExp['$*'];
注意:IE 并不支持。
- $1 - $9
功能:返回1 - 9個(gè)捕獲組的值。
示例: console.log('$1:'+ RegExp.$1) // -> 'm'
* 注意的是“RegExp”指的是最近一次在程序運(yùn)行中進(jìn)行匹配操作的正則實(shí)例對(duì)象。
2、String 中的正則
1)match()
match() 接受一個(gè)正則表達(dá)式作為參數(shù)。當(dāng)正則表達(dá)式不具有全局屬性 g ,該方法和 RegExp 的 exec() 方法執(zhí)行結(jié)果一樣,如正則有全局標(biāo)志 g 時(shí),返回一個(gè)包含所有匹配項(xiàng)的純數(shù)組。
格式:str.match(pattern)
功能:
match 在功能上與正則對(duì)象自帶的方法exec很類(lèi)似。
match 根據(jù)匹配規(guī)則pattern匹配指定的字符串str,如果匹配成功則返回一個(gè)數(shù)組格式的結(jié)果用于存放匹配文本有關(guān)的信息,如果沒(méi)有匹配到則返回null。
復(fù)制代碼
var text = "mom and dad and baby";
var pattern = /mom( and dad( and baby)?)?/i;
var matches = text.match(pattern);
console.log(matches);// 0: "mom and dad and baby", 1: " and dad and baby", 2: " and baby", groups: undefined, index: 0, input: "mom and dad and baby", length: 3
console.log(pattern.lastIndex); // 20
var pattern = /mom( and dad( and baby)?)?/gi;
matches = text.match(pattern);
console.log(matches);// ["mom and dad and baby"]
console.log(pattern.lastIndex); // 0
text = "vat ,bat, sat, fat";
pattern = /.at/;
//與 pattern.exec(text) 相同
matches = text.match(pattern);
console.log(matches); //0: "vat", groups: undefined, index: 0, input: "vat ,vat, sat, fat", length: 1
console.log(pattern.lastIndex); //0
//如果match的匹配規(guī)則具有全局g屬性,那么match返回的匹配結(jié)果,便是一個(gè)包含所有匹配結(jié)果的純數(shù)組
pattern = /.at/g;
matches = text.match(pattern);
console.log(matches); //["vat", "bat", "sat", "fat"]
console.log(pattern.lastIndex); //0
復(fù)制代碼
2)search()
該方法接受一個(gè)正則表達(dá)式或者字符串作為參數(shù),從字符串開(kāi)頭向后查找。
格式:str.search(pattern);
功能:根絕匹配規(guī)則pattern在字符串中檢索指定的結(jié)果,如果檢索到則返回該結(jié)果首字母在原字符中的索引,否則返回-1。其功能類(lèi)似于indexOf,只是indexOf并不支持正則匹配。
該方法忽略全局修飾符g,也不支持lastIndex也就是意味著它不能被多次調(diào)用,一旦檢索到結(jié)果,便會(huì)停止檢索。
var text = "vat ,bat, sat, fat";
var pattern = /at/;
var pos = text.search(pattern);
console.log(pos); // 1
console.log( text.search("t") ); // 2
3)replace()
格式:str.replace(pattern,given)
功能:根據(jù)匹配規(guī)則pattern來(lái)用指定的內(nèi)容given去替換str或其部分字符。其中pattern可以是str中的部分字符也可以是一個(gè)正則表達(dá)式。
pattern 可以是字符串,也可以是正則表達(dá)式;given所代表替換的指定內(nèi)容,既可以是字符串,也可以是一個(gè)回調(diào)函數(shù)。
replace() 方法只會(huì)返回原字符被操作后的副本,并不會(huì)對(duì)原字符串進(jìn)行改動(dòng)。
如果 pattern 是字符串,那么只會(huì)替換第一個(gè)匹配的子字符串。要想替換所有匹配的子串,需要 pattern 是正則表達(dá)式,且?guī)謽?biāo)志 g。
復(fù)制代碼
var text = "cat ,bat, sat, fat";
var pattern = "at";
var result = text.replace(pattern,"ond");
console.log(result); // "cond ,bat, sat, fat"
pattern = /at/g;
result = text.replace(pattern,"ond");
console.log(result); //"cond ,bond, sond, fond"
var str = '世界上最遙遠(yuǎn)的距離 不是生與死的距離 而是我就站在你的面前 你卻不知道我愛(ài)你。',
st = ['死','愛(ài)','距離'],
pattern = '',
alt = '',
str1= "";
for(var i=0;i<st.length;i++){
pattern = new RegExp(st[i],'g');
for(var j=0;j<st[i].length;j++){
alt+='*';
}
str1 = str.replace(pattern,alt);
alt = '';
}
console.log(str); //世界上最遙遠(yuǎn)的距離 不是生與死的距離 而是我就站在你的面前 你卻不知道我愛(ài)你。
console.log(str1); //世界上最遙遠(yuǎn)的** 不是生與*的** 而是我就站在你的面前 你卻不知道我*你。
復(fù)制代碼
given若是回調(diào)函數(shù)
在只有一個(gè)匹配項(xiàng),即沒(méi)有捕獲組的情況下,
其格式為: function(match,index,input){}。
如果有多個(gè)捕獲組,
其格式為: function(match,[$1...$9],index,input){}。
match: 表示當(dāng)前匹配的結(jié)果
[$1 - $9]: 存在分組的情況下,表示當(dāng)前 1 - 9 個(gè)分組的內(nèi)容。
index: 當(dāng)前匹配內(nèi)容首字母在字符創(chuàng)中索引。
input :進(jìn)行匹配的原字符創(chuàng)。
復(fù)制代碼
function htmlEscape(text){
return text.replace(/[<>"&]/g,function(match,index,input){
switch(match){
case "<": return "<";
case ">": return ">";
case "&": return "&";
case "\"": return """;
}
});
}
console.log(htmlEscape("<p class=\"greeting\">Hello world!</p>"));// <p class="greeting">Hello world!</p>
var str = '2016/10/29';
var pattern = /(\d+)(\/)/g;
var data = str.replace(pattern,function(result,$1,$2){
return $1+'.';
});
console.log(data); //2016.10.29
console.log(str.replace(pattern,"$1.")); //2016.10.29
console.log(str.replace(/\//g,".")); //2016.10.29
復(fù)制代碼
4)split()
格式:str.split(pattern,length)
功能:
根據(jù)規(guī)則 pattern 將字符串拆分為數(shù)組,拆分后的數(shù)組并不包含作為拆分依據(jù)的那個(gè)參數(shù)。
默認(rèn)情況下是空字符進(jìn)行拆分,也就是每個(gè)任意的字符作為一個(gè)數(shù)組元素。
pattern參數(shù),可以是正則表達(dá)式,也可以是單純的字符或字符串。
length參數(shù),用于設(shè)置拆分?jǐn)?shù)組后數(shù)組最大的長(zhǎng)度(即數(shù)組元素的個(gè)數(shù))。缺省該項(xiàng),表示將字符全部拆分為數(shù)組。
var str = 'hellow world!';
console.log(str.split('')); // ["h", "e", "l", "l", "o", "w", " ", "w", "o", "r", "l", "d", "!"]
console.log(str.split('',5)); // ["h", "e", "l", "l", "o"]
console.log(str.split(/o/g)); // ["hell", "w w", "rld!"]
ng偽靜態(tài)說(shuō)明
參數(shù)名 意義
$arg_[parameter] http請(qǐng)求中某個(gè)參數(shù)的值。例:/index.html?size=100,可以用$arg_size獲取100$binary_remote_addr 二進(jìn)制格式的客戶(hù)端地址。$body_bytes_sent 表示在向客戶(hù)端發(fā)送的http響應(yīng)中,包體部分的字節(jié)數(shù)$content_length 表示在向客戶(hù)端請(qǐng)求頭部中的Content-Length字段$contenttype 表示在向客戶(hù)端請(qǐng)求頭部中的Content-Type字段$cookie[cookie] 表示在客戶(hù)端請(qǐng)求頭部中的cookie字段$document_root 表示當(dāng)前請(qǐng)求所使用的root配置項(xiàng)的值$uri 表示當(dāng)前請(qǐng)求URI,不帶任何參數(shù)$document_uri 同上$request_uri 表示客戶(hù)端發(fā)來(lái)的原始請(qǐng)求URI,帶完整的參數(shù)。$uri和$document_uri未必是用戶(hù)的原始請(qǐng)求,在內(nèi)部重定向后可能是重定向后的URI,而$requesturi永遠(yuǎn)不會(huì)改變,始終是客戶(hù)端原始URI$host 表示客戶(hù)端請(qǐng)求頭部中的Host字段。如果Host字段不存在,則以實(shí)際處理的server(虛擬主機(jī))名稱(chēng)代替。$hostname 表示Nginx所在機(jī)器的名稱(chēng)。$http[header] 表示當(dāng)前http請(qǐng)求中相應(yīng)頭部的值。$senthttp[header] 表示返回客戶(hù)端的http響應(yīng)中相應(yīng)頭部的值。$is_args 表示請(qǐng)求中的URI是否帶參數(shù),如果帶參數(shù),$is_arge值為?,否則為空字符串$limit_rate 表示當(dāng)前連接的限速是多少,0表示無(wú)限速$nginx_version Nginx的版本號(hào)$query_string 請(qǐng)求URI中的參數(shù),與$args相同,$query_string是只讀的不會(huì)改變$remote_addr 表示客戶(hù)端地址$remote_port 表示客戶(hù)端端口$remote_user 表示使用Auth Basic Module時(shí)定義的用戶(hù)名$request_filename 表示用戶(hù)請(qǐng)求中URI經(jīng)過(guò)root或alias轉(zhuǎn)換后的文件路徑$request_body 表示http請(qǐng)求中的包體,該參數(shù)只在proxy_pass或fastcgi_pass中有意義$request_body_file 表示http請(qǐng)求中的包體存儲(chǔ)的臨時(shí)文件名$request_completion 當(dāng)請(qǐng)求已經(jīng)全部完成時(shí),其值為"ok";若沒(méi)有完成,就要返回客戶(hù)端,則其值為空字符串;或者在斷點(diǎn)續(xù)傳等情況下使用HTTP range訪問(wèn)的并不是文件的最后一塊,那么其值也是空字符串$request_method 表示http請(qǐng)求的方法名,如GET、PUT、POST等$scheme 表示http scheme,如在請(qǐng)求nginx.com/中表示https$server_addr 表示服務(wù)器地址$server_name 表示服務(wù)器名稱(chēng)$server_port 表示服務(wù)器端口$server_protocol 表示服務(wù)器向客戶(hù)端發(fā)送響應(yīng)的協(xié)議,如HTTP/1.1或HTTP/1.0作者:Jeson老師鏈接:https://www.imooc.com/article/22217來(lái)源:慕課網(wǎng)
js 中的正則表達(dá)式RegExp
https://www.cnblogs.com/zhanglw456/p/10442477.html