如何使用javascript获取电话号码中的特定号码

时间:2017-02-28 21:18:27

标签: javascript substring

我希望在电话号码的第一个“7”后面得到以下号码。 让我们说“077777777”它的“7”和“0788787878”它的“8”和“0727923743”是“2”等我怎么能在javascript中这样做 我在想这样的事情

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

但它的差别很大。

5 个答案:

答案 0 :(得分: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.




答案 1 :(得分:1)

您的代码很接近,但有两个问题:

  1. substring()是一个int,而不是字符串,因此您无法在其上调用indexOf()"0784848236"。您应该使用substring()(在引号中)。
  2. substring()为您提供指定索引之后的整个字符串,但您只需要该子字符串的第一个字符。所以你根本不需要在这里使用var phone = "0784848236"["0784848236".indexOf("7") + 1];。相反,您可以使用direct access(索引)。
  3. 相反,尝试这样的事情:

    {{1}}

答案 2 :(得分:0)

为了使用substring方法,您需要传入一个字符串。

您还需要提供开始和结束索引。以下是该方法的参考: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'

之后的下一个数字

答案 3 :(得分: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);




答案 4 :(得分:0)

这对我有用:

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

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