我希望在電話號碼中的第一個「7」後獲得以下號碼。 比方說,「077777777」的「7」和「0788787878」的「8」和「0727923743」的「2」等我怎樣才能做到這一點在JavaScript 我在想這樣的事情如何使用javascript在電話號碼中獲取特定號碼
var phone = 0784848236.substring(0784848236.indexOf("7"));
但它有很大的不同。
我希望在電話號碼中的第一個「7」後獲得以下號碼。 比方說,「077777777」的「7」和「0788787878」的「8」和「0727923743」的「2」等我怎樣才能做到這一點在JavaScript 我在想這樣的事情如何使用javascript在電話號碼中獲取特定號碼
var phone = 0784848236.substring(0784848236.indexOf("7"));
但它有很大的不同。
你可以使用正則表達式:
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.
爲了使用的子方法,你需要在一個字符串傳遞。
您還需要提供一個開始和結束索引。下面是該方法的參考: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」
中的第一個電話號碼「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);
你的代碼是接近的,但有兩個問題:
0784848236
是一個int,而不是一個字符串,所以你不能調用substring()
或indexOf()
就可以了。您應該改用"0784848236"
(在引號中)。substring()
爲您提供指定索引後的整個字符串,但您只需要該子字符串的第一個字符。所以你根本不需要在這裏使用substring()
。相反,你可以使用direct access(index into)。相反,嘗試這樣的事:
var phone = "0784848236"["0784848236".indexOf("7") + 1];
您也可以使用'String(0784848236)'將0784848236'轉換爲''0784848236'',如其他答案所示。 – erikamjoh
這裏就是我們的工作對我來說:
var num="0784848236";
var numberSeven = num.indexOf("7");
var yourNumber = num.substring((numberSeven + 1), (numberSeven + 2));
嗯,這是行不通的,因爲你沒有在包裝你的字符串引號。 –