2017-02-28 64 views
-1

我希望在電話號碼中的第一個「7」後獲得以下號碼。 比方說,「077777777」的「7」和「0788787878」的「8」和「0727923743」的「2」等我怎樣才能做到這一點在JavaScript 我在想這樣的事情如何使用javascript在電話號碼中獲取特定號碼

var phone = 0784848236.substring(0784848236.indexOf("7"));

但它有很大的不同。

+1

嗯,這是行不通的,因爲你沒有在包裝你的字符串引號。 –

回答

1

你可以使用正則表達式:

var match = '0784848236'.match(/7(.)/); 
 
match = match && match[1]; 
 
console.log(match);

注意:這將導致null當沒有比賽。

請注意,以字符串格式存儲電話號碼非常重要。如果您使用數字數據類型,並且將其轉換爲字符串,您將失去預先添加的零。瞭解如何在這種情況下,尋找一個零失敗:

var phone = 0784848236; 
 
var match = String(phone).match(/0(.)/); 
 
match = match && match[1]; 
 
console.log(match); // null !!! The zero is lost.

0

爲了使用的子方法,你需要在一個字符串傳遞。

您還需要提供一個開始和結束索引。下面是該方法的參考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring str.substring(indexStart [,indexEnd])

如果我是通過聲明從電話號碼的字符串,然後我可以在字符串中使用字符串來改變你的問題。就像這樣:

var pn = '0784848236'; 
var n = pn.substring(pn.indexOf("7") + 1, pn.indexOf("7") + 2); 

現在的結果將是繼「7」

0

中的第一個電話號碼「7」

後得到以下號碼的下一個號碼這裏有兩種方法:

String.prototype.substr()String.prototype.indexOf()函數方法:

var phone = 0784848236, i, 
 
    strPhone = String(phone), // string representation of phone number 
 
    nextDigit = ((i = strPhone.indexOf("7")) !== -1)? strPhone.substr(i + 1, 1) : null; 
 
    
 
console.log(nextDigit);


String.prototype.split()Array.prototype.indexOf()功能的方法:

var phone = 0784848236, 
 
    arr = (''+0784848236).split(''), i, 
 
    nextDigit = ((i = arr.indexOf("7")) !== -1)? arr[i+1] : null; 
 

 
console.log(nextDigit);

1

你的代碼是接近的,但有兩個問題:

  1. 0784848236是一個int,而不是一個字符串,所以你不能調用substring()indexOf()就可以了。您應該改用"0784848236"(在引號中)。
  2. substring()爲您提供指定索引後的整個字符串,但您只需要該子字符串的第一個字符。所以你根本不需要在這裏使用substring()。相反,你可以使用direct access(index into)。

相反,嘗試這樣的事:

var phone = "0784848236"["0784848236".indexOf("7") + 1];

+0

您也可以使用'String(0784848236)'將0784848236'轉換爲''0784848236'',如其他答案所示。 – erikamjoh

0

這裏就是我們的工作對我來說:

var num="0784848236"; 
var numberSeven = num.indexOf("7"); 

var yourNumber = num.substring((numberSeven + 1), (numberSeven + 2));