这些JS速记字符是什么意思?

P0l*_*ska 5 javascript regex shorthand

我一直试图找出这个代码意味着什么,但我没有运气,甚至找不到从哪里开始或查找什么.

if(!/^(https?):\/\//i.test(value))
Run Code Online (Sandbox Code Playgroud)

我理解其中一些所以我有以下问题.

  1. "/ ^"有什么作用?
  2. 那是什么?做?
  3. https周围的"("和")"做了什么
  4. ":"做什么?
  5. "我"做什么?

如果这似乎是一个没有研究的问题,任何从哪里开始的指导都会很棒.

Sha*_*dge 7

它是什么

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

正则表达式用于在文本上执行模式匹配和"搜索和替换"功能.

这完全相同,但可能更清楚

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

它能做什么

在这种情况下,它检查value不以http://或开头https://

RegExp解释

  / //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
Run Code Online (Sandbox Code Playgroud)

学习