JavaScript中的正則表達式
1 例 /(\n) * $/
var source = $.trim($("#tm-source").val().replace(/(\n) * $/, ""));
作用:去除從‘#tm-source’獲取字符串中末尾的空格和換行符
語法解釋:
正則表達式 /(\n) * $/
可以逐部分進行解釋:
-
/
和/
:- 斜杠
/
是正則表達式的定界符螟蒸,表示正則表達式的開始和結(jié)束拄踪。
- 斜杠
-
(\n)
:-
\n
表示換行符篮灼。這里的(...)
是一個捕獲組鲁僚,用于提取匹配的內(nèi)容。盡管在這個表達式中我們并不需要提取它篓跛,但用捕獲組可以讓我們更好地理解結(jié)構(gòu)扳炬。 - 這部分匹配字符串中的換行符。
-
-
*
:- 星號
*
是量詞病往,表示前面的字符(在這里是空格字符)可以出現(xiàn)零次或多次。 - 因此骄瓣,
*
會匹配緊跟在換行符后的所有空格字符(包括沒有空格的情況)停巷。
- 星號
-
$
:- 符號
$
表示字符串的結(jié)束位置。它確保整個匹配過程只發(fā)生在字符串的末尾榕栏。 - 因此畔勤,整個表達式只能在字符串的最后部分進行匹配。
- 符號
2 / \"/g
-
/
表示正則表達式的開始和結(jié)束扒磁。-
\"
匹配一個雙引號字符(\"
用于轉(zhuǎn)義庆揪,讓它表示實際的雙引號)。 -
g
是全局標(biāo)志妨托,意指對整個字符串進行查找缸榛,替換所有匹配的雙引號。
-
3 /^(. * \n * ) $/igm
.match(/^(. * \n * ) $/igm)
:
-
.match()
是一個字符串方法兰伤,用于匹配與正則表達式相符的文本内颗。 -
^(. * \n * ) $
是一個正則表達式,用于描述需要匹配的模式:-
^
表示字符串的開始敦腔, -
(. * \n * )
表示任意字符(包括空格)后跟一個換行符均澳,最后可以有任意數(shù)量的空格,*
表示0個或多個符衔。 -
$
表示字符串的結(jié)束找前。
-
-
i
表示不區(qū)分大小寫匹配,g
表示全局匹配判族,m
表示多行匹配躺盛,使得^
和$
分別匹配每一行的開始和結(jié)束。
正則表達式使用規(guī)則
正則表達式的本質(zhì)是字符匹配 匹配區(qū)域內(nèi)的空格有意義形帮,表示匹配空格槽惫,注意識別
/:起始
/:結(jié)束
- 字符或字符串匹配
/c$/
找字符‘c’ $表示行結(jié)束 - 行匹配
/^.*匹配字符.*$/
匹配含有某段字符的一行
/^.*匹配字符.*$/igm
i:忽略大小寫 g:全局匹配 m:多行匹配
.
:等于除換行符的任意單個字符 換行符使用\s\S 或者 ^
/.a/
:匹配任意一個字符后面緊跟一個字母 "a"
*
:任意數(shù)量 - 非空白字符
\S
\S+
一個或多個連續(xù)的非空白字符 - 空白字符
\s