我正在嘗試編輯給定的字符串,通過使用slice()和search()的組合來刪除最後的文件擴展名。但是,使用search()時,var vNamePrepared會變空。爲什麼lastIndexOf()的作品和搜索()不?
function site_change() {
var vDocGrabber = "indexmobile.html",
vNamePrepared = vDocGrabber.slice(0, vDocGrabber.search("."));
/*transform vNamePrepared in some way*/
document.getElementById("demo").innerHTML = vNamePrepared + ".php";}
或者,用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
爲什麼search()在這裏不起作用?它不會將整個週期的索引作爲整數返回到slice()中嗎?
第一個問題,道歉,如果它不符合標準。
的更多信息[搜索](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/搜索) –
沒有'String.search(String)',最接近'String.includes(String)',它不返回索引 – adeneo
@adeneo字符串在[String.search中被轉換爲正則表達式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search)。 –