在正则表达式搜索中,返回值-1表示什么?

What does a return value of -1 mean in a regular expression search

本文关键字:表示 什么 返回值 正则表达式 搜索      更新时间:2023-09-26

我使用正则表达式来检查4位数,但在我的代码中使用==-1,我对它的工作方式感到困惑。我以为在输入框中输入少于4位数的东西时,警报会弹出,但当我输入超过4位数的数字时,它也会弹出。我想知道

背后的逻辑
function checkpostal(){
  var re4digit=/^'d{4}$/ //regular expression defining a 4digit number between beginning and end value
  if (document.myform.myinput.value.search(re4digit)==-1) //if match failed
    alert("Please enter in a 4 digit number");
}

在Chrome的控制台测试你的正则表达式模式时,我得到了以下结果:

> "1233334".search(/^'d{4}$/)
-1
> "124".search(/^'d{4}$/)
-1
> "124444".search(/^'d{4}$/)
-1
> "4444".search(/^'d{4}$/)
0
> "44444".search(/^'d{4}$/)
-1

-1指示您正在查找的表达式在您要测试正则表达式的字符串中没有找到。

您的regex查询正在搜索字符串,您正在测试的东西是正好 4位数字长。这意味着当您测试大于或小于4位数的内容时,.search(r4digit)将返回-1。

这类似于Javascript的String.prototype.indexOf函数,当没有找到子字符串时也返回-1;这只是一种简单的说法,表示搜索一直到最后,什么也没找到。