为什么lastIndexOf()工作而search()不工作?

A. *_* W. 0 javascript

我正在尝试编辑一个给定的字符串,最后通过使用slice()和search()的组合来删除文件扩展名.但是,使用search()时,var vNamePrepared将变为空.

function site_change() {
  var vDocGrabber = "indexmobile.html",
      vNamePrepared = vDocGrabber.slice(0, vDocGrabber.search("."));
  /*transform vNamePrepared in some way*/
  document.getElementById("demo").innerHTML = vNamePrepared + ".php";}
Run Code Online (Sandbox Code Playgroud)

或者,用lastIndexOf()替换search()的确切代码产生了所需的结果.

function site_change() {    
  var vDocGrabber = "indexmobile.html",
      vNamePrepared = vDocGrabber.slice(0, vDocGrabber.lastIndexOf("."));
  /*transform vNamePrepared in some way*/
  document.getElementById("demo").innerHTML = vNamePrepared + ".php";}

--> indexmobile.php
Run Code Online (Sandbox Code Playgroud)

为什么搜索()在这里不起作用?它不会将整数期间的索引作为整数返回到slice()吗?

第一个问题,如果不符合标准,请道歉.

Ry-*_*Ry- 5

search接受正则表达式,并.匹配正则表达式中的任何非换行符.相当于lastIndexOf从头开始indexOf.