这些 JS shorthand 字符是什么意思?

What do these JS shorthand characters mean?

我一直在努力找出这段代码的含义,但我什至找不到从哪里开始或要查找的内容。

if(!/^(https?):\/\//i.test(value))

我理解了一些,所以我有以下问题。

  1. “/^”有什么作用?
  2. 什么意思?做什么?
  3. “(”和“)”在 https 周围有什么作用
  4. “:”有什么作用?
  5. "i" 有什么作用?

如果这似乎是一个未经研究的问题,那么任何从哪里开始的指导都会很好。

这对你有帮助吗

  • ^ 断言字符串开头的位置
  • http 按字面匹配字符 http(不区分大小写)
  • s? 按字面匹配字符 s(不区分大小写)
  • 量词:?零到一次之间,尽可能多次,按需回馈[贪心]
  • : 匹配字符 : literally
  • \/匹配字符/字面意思
  • i 修饰符:不敏感。不区分大小写的匹配(忽略 [a-zA-Z] 的大小写)

这是什么

正则表达式是描述字符模式的对象。

正则表达式用于对文本执行模式匹配和 "search-and-replace" 功能。

这完全一样,但可能更清楚

var patt = /^(https?):\/\//i;
if( !patt.test(value) ){
  // value DOES NOT MATCH patt!
}

它的作用

在这种情况下,它会检查 value 是否以 http://https://

开头

正则表达式解释

  / //Open regexp
    ^ //Start of the string
    (  // Start of the capturing group
      https? //Match literally http or https (because s is optional "?")
    )  // End of capturing group
    :\/\/ // Match literally ://
  / // Close regexp
  i // Case-insensitive flag

学习