(/^\\s \|\\s $/gm) 在 JavaScript 中的含义是什么?

新手上路,请多包涵

我遇到了这个 JavaScript 函数:

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

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

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

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

原文由 aryaman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

它是一个正则表达式搜索,匹配两种可选模式:

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

/ 正则表达式分隔符

第一个选择 ^\s+

  • ^ 断言行首位置
  • \s+ 匹配任何空白字符(等于 [\r\n\t\f\v ])
  • + Quantifier — 匹配一次和无限次,尽可能多次,按需回馈(贪心)

第二个选择 \s+$

  • \s+ 匹配任何空白字符(等于[\r\n\t\f\v])
  • + Quantifier — 匹配一次和无限次,尽可能多次,按需回馈(贪心)
  • $ 断言行尾的位置

全局模式标志

  • g 修饰符:全局。所有比赛(第一场比赛后不返回)
  • m 修饰符:多行。使 ^ 和 $ 匹配每行的开始/结束(不仅是字符串的开始/结束)

您可以在 regex101.com 上阅读更多详细信息。

功能说明

函数调用 return x.replace(/^\s+|\s+$/gm,''); 从字符串的开头和结尾搜索任何空格。如果找到,则将其替换为空字符串 '' 。简单地说它会修剪空白字符:

  • \n 回车(ASCII 13)
  • \r 换行(换行)字符(ASCII 10)
  • \t 制表符(ASCII 9)
  • \f 换页字符(ASCII 12)
  • \v 任何垂直空白字符

原文由 ino 发布,翻译遵循 CC BY-SA 4.0 许可协议

它是一个正则表达式。

该模式将所有空白字符 \s+ 替换为一个空字符串 \s+$ 具体取决于它是在字符串的开头 ^\s+ 还是 | 在字符串的末尾 ---

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

m 用于多行。

原文由 standby954 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题