我希望在电话号码的第一个“7”后面得到以下号码。 让我们说“077777777”它的“7”和“0788787878”它的“8”和“0727923743”是“2”等我怎么能在javascript中这样做 我在想这样的事情
var phone = 0784848236.substring(0784848236.indexOf("7"));
但它的差别很大。
答案 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)
您的代码很接近,但有两个问题:
substring()
是一个int,而不是字符串,因此您无法在其上调用indexOf()
或"0784848236"
。您应该使用substring()
(在引号中)。substring()
为您提供指定索引之后的整个字符串,但您只需要该子字符串的第一个字符。所以你根本不需要在这里使用var phone = "0784848236"["0784848236".indexOf("7") + 1];
。相反,您可以使用direct access(索引)。相反,尝试这样的事情:
{{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));