JavaScript中的正则表达式
1 例 /(\n) * $/
var source = $.trim($("#tm-source").val().replace(/(\n) * $/, ""));
作用:去除从‘#tm-source’获取字符串中末尾的空格和换行符
语法解释:
正则表达式 /(\n) * $/
可以逐部分进行解释:
-
/
和/
:- 斜杠
/
是正则表达式的定界符,表示正则表达式的开始和结束。
- 斜杠
-
(\n)
:-
\n
表示换行符。这里的(...)
是一个捕获组,用于提取匹配的内容。尽管在这个表达式中我们并不需要提取它,但用捕获组可以让我们更好地理解结构。 - 这部分匹配字符串中的换行符。
-
-
*
:- 星号
*
是量词,表示前面的字符(在这里是空格字符)可以出现零次或多次。 - 因此,
*
会匹配紧跟在换行符后的所有空格字符(包括没有空格的情况)。
- 星号
-
$
:- 符号
$
表示字符串的结束位置。它确保整个匹配过程只发生在字符串的末尾。 - 因此,整个表达式只能在字符串的最后部分进行匹配。
- 符号
2 / \"/g
-
/
表示正则表达式的开始和结束。-
\"
匹配一个双引号字符(\"
用于转义,让它表示实际的双引号)。 -
g
是全局标志,意指对整个字符串进行查找,替换所有匹配的双引号。
-
3 /^(. * \n * ) $/igm
.match(/^(. * \n * ) $/igm)
:
-
.match()
是一个字符串方法,用于匹配与正则表达式相符的文本。 -
^(. * \n * ) $
是一个正则表达式,用于描述需要匹配的模式:-
^
表示字符串的开始, -
(. * \n * )
表示任意字符(包括空格)后跟一个换行符,最后可以有任意数量的空格,*
表示0个或多个。 -
$
表示字符串的结束。
-
-
i
表示不区分大小写匹配,g
表示全局匹配,m
表示多行匹配,使得^
和$
分别匹配每一行的开始和结束。
正则表达式使用规则
正则表达式的本质是字符匹配 匹配区域内的空格有意义,表示匹配空格,注意识别
/:起始
/:结束
- 字符或字符串匹配
/c$/
找字符‘c’ $表示行结束 - 行匹配
/^.*匹配字符.*$/
匹配含有某段字符的一行
/^.*匹配字符.*$/igm
i:忽略大小写 g:全局匹配 m:多行匹配
.
:除换行符的任意字符
*
:任意数量