JavaScript 中的 (/^\s+|\s+$/gm) 是什么意思?

问题描述 投票:0回答:4

我遇到了这个 JavaScript 函数:

function myTrim(x) {
  return x.replace(/^\s+|\s+$/gm,'');
}

我知道这个函数(

mytrim()
)替换了字符串(x)中的一些字符,但是
/^\s+|\s+$/gm
在replace方法中做了什么?

我在哪里可以了解更多有关这些的信息?

注意 - 该函数返回两侧删除空格的字符串。

javascript regex
4个回答
26
投票

这是匹配两种替代模式的正则表达式搜索:

/^\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
    任何垂直空白字符

2
投票

^\s+|\s+$gm

第一种选择 (^\s+)

^ 在行首声明位置

\s+ 匹配任何空白字符(等于 [ ])

+量词 — 匹配一次和无限次,尽可能多的次数,根据需要回馈(贪婪)

第二个选择(\s+$)

\s+ 匹配任何空白字符(等于 [ ])

+量词 — 匹配一次和无限次,尽可能多的次数,根据需要回馈(贪婪)

$ 在行尾断言位置

全局模式标志:

g 修饰符:全局。所有比赛(第一场比赛后不返回)

m 修饰符:多行。使 ^ 和 $ 匹配每行的开始/结束(不仅仅是字符串的开始/结束)


2
投票

这种语法称为 正则表达式(通常缩写为 RegEx);您可以在多个地方学习此内容,但您可以尝试这个

还有多个网站可以测试此类正则表达式,例如regex101.com。请注意,正则表达式不是通用标准;根据编程语言和平台的不同,有不同的变体(例如 grep、扩展 grep、Perl、Java 等)。


2
投票

这是一个正则表达式。

该模式将所有空白字符

\s+
替换为空字符串,具体取决于该空字符串位于字符串
^\s+
的开头或
|
位于字符串
\s+$
的末尾。

g
用于全局修饰符,第一次匹配后不会返回。

m
用于多行。

© www.soinside.com 2019 - 2024. All rights reserved.