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

时间:2015-05-28 08:25:27

标签: javascript regex shorthand

我一直试图找出这段代码的含义,但我还没有运气,甚至找不到从哪里开始或者要查找什么。

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

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

  1. “/ ^”做什么?
  2. 是什么?办?
  3. 围绕https
  4. 的“(”和“)”做了什么
  5. “:”做什么?
  6. “我”做什么?
  7. 如果这似乎是一个没有研究的问题,任何指导从哪里开始都会很棒。

2 个答案:

答案 0 :(得分:7)

它是什么

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

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

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

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

它做什么

在这种情况下,它会检查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

学习

答案 1 :(得分:1)

这可以帮到你

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