我遇到了这个 JavaScript 函数:
function myTrim(x) {
return x.replace(/^\s+|\s+$/gm,'');
}
我知道这个函数(
mytrim()
)替换了字符串(x)中的一些字符,但是/^\s+|\s+$/gm
在replace方法中做了什么?
我在哪里可以了解更多有关这些的信息?
注意 - 该函数返回两侧删除空格的字符串。
这是匹配两种替代模式的正则表达式搜索:
/^\s+|\s+$/gm
/
正则表达式分隔符
|
替代分隔符
第一个选择
^\s+
^
在行首声明位置\s+
匹配任何空白字符(等于 [
])+
量词 — 一次和无限次之间的匹配,尽可能多的次数,根据需要回馈(贪婪)第二种选择
\s+$
\s+
匹配任何空白字符(等于 [
])+
量词 — 一次和无限次之间的匹配,尽可能多的次数,根据需要回馈(贪婪)$
在行尾声明位置全局模式标志
g
修饰符:全局。所有比赛(第一场比赛后不返回)m
修饰符:多行。使 ^ 和 $ 匹配每行的开始/结束(不仅仅是字符串的开始/结束)您可以在regex101.com上阅读更多详细信息。
功能说明
函数调用
return x.replace(/^\s+|\s+$/gm,'');
从字符串的开头和结尾搜索任何空格。
如果找到,则将其替换为空字符串''
。
简单地说它会修剪空白字符:
\n
回车符 (ASCII 13)\r
换行(换行)字符 (ASCII 10)\t
制表符 (ASCII 9)\f
换页符 (ASCII 12)\v
任何垂直空白字符^\s+|\s+$gm
^ 在行首声明位置
\s+ 匹配任何空白字符(等于 [ ])
+量词 — 匹配一次和无限次,尽可能多的次数,根据需要回馈(贪婪)
\s+ 匹配任何空白字符(等于 [ ])
+量词 — 匹配一次和无限次,尽可能多的次数,根据需要回馈(贪婪)
$ 在行尾断言位置
g 修饰符:全局。所有比赛(第一场比赛后不返回)
m 修饰符:多行。使 ^ 和 $ 匹配每行的开始/结束(不仅仅是字符串的开始/结束)
这种语法称为 正则表达式(通常缩写为 RegEx);您可以在多个地方学习此内容,但您可以尝试这个。
还有多个网站可以测试此类正则表达式,例如regex101.com。请注意,正则表达式不是通用标准;根据编程语言和平台的不同,有不同的变体(例如 grep、扩展 grep、Perl、Java 等)。
这是一个正则表达式。
该模式将所有空白字符
\s+
替换为空字符串,具体取决于该空字符串位于字符串 ^\s+
的开头或 |
位于字符串 \s+$
的末尾。
g
用于全局修饰符,第一次匹配后不会返回。
m
用于多行。