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

时间:2018-03-10 13:01:53

标签: javascript

我遇到了这个javascript函数 -

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

我知道这个函数(mytrim())替换了字符串(x)中的一些字符,但/^\s+|\s+$/gm在替换方法中做了什么?

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

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

4 个答案:

答案 0 :(得分:4)

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

/^\s+|\s+$/gm

/正则表达式分隔符

第一个替代^\s+
^在行的开头声明立场
\s+匹配任何空白字符(等于[\ r \ n \ t \ f \ v])
+量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)

第二个替代\s+$
\s+匹配任何空白字符(等于[\ r \ n \ t \ f \ v])
+量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)
$在一行的末尾断言位置

全局模式标记
g修饰符:全局。所有比赛(首场比赛后不返回)
m修饰符:多行。导致^和$匹配每行的开头/结尾(不仅是字符串的开头/结尾)

您可以阅读有关regex101.com

的更多详情

功能说明
函数调用return x.replace(/^\s+|\s+$/gm,'');从字符串的开头和字符串的结尾搜索任何空格 如果找到,则将其替换为空字符串'' 简单地说它修剪空白字符:
回车\n(ASCII 13)
\r换行(换行符)字符(ASCII 10)
\t制表符(ASCII 9)
\f换页字符(ASCII 12)
\v任何垂直空白字符

答案 1 :(得分:1)

此语法称为Regular Expression(通常缩写为RegEx);您可以通过多个地方了解这一点,但您可以尝试this one。还有多个网站可以测试regex101.com这样的正则表达式。请注意,正则表达式不是通用标准,它们是取决于编程语言和平台的变体(例如:grep,扩展grep,Perl,Java,...)。

答案 2 :(得分:1)

这是正则表达式。 该模式将所有空白字符\s+替换为空字符串,具体取决于字符串^\s+末尾的字符串|\s+$的开头。 g代表全局修饰符,在第一次匹配后不返回 m代表多行

答案 3 :(得分:0)

^ \ s + | \ s + $ gm

第一替代(^ \ s +)

^声明行首的位置

\ s +匹配任何空格字符(等于[\ r \ n \ t \ f \ v])

+ Quantifier-匹配一次和无限次,尽可能多地匹配,并根据需要返回(贪婪)

第二替代(\ s + $)

\ s +匹配任何空格字符(等于[\ r \ n \ t \ f \ v])

+ Quantifier-匹配一次和无限次,尽可能多地匹配,并根据需要返回(贪婪)

$在行尾声明位置

全局模式标志:

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

m修饰符:多行。导致^和$匹配每行的开头/结尾(不仅是字符串的开头/结尾)