function changeNumber(e) {
var phoneNumber = e.replace(/D/g, '');
if (phoneNumber.startsWith("1")) {
var finalNumber = phoneNumber.slice(0);
return finalNumber;
} else {
return phoneNumber;
};
};
console.log(changeNumber("+1 (234)-567.8995"));
期望的结果应该是:2345678995但我正在12345678995。就像它没有通过 if 语句运行一样。
你需要使用从索引1
开始的String#slice
,因为你想省略索引0
的第一个字符。
phoneNumber.slice(0)
返回字符串的副本,作为变量的赋值,但是
phoneNumber.slice(1)
返回索引 1 中的字符串和所有后续字符。
function changeNumber(e) {
var phoneNumber = e.replace(/D/g, '');
return phoneNumber.startsWith("1")
? phoneNumber.slice(1)
: phoneNumber;
}
console.log(changeNumber("+1 (234)-567.8995"));
做了一个更简洁的函数,没有条件
-
D
匹配所有非数字字符。 - 如果
^1
是字符串中的第一个字符,则匹配 1。
function changeNumber(e) {
return e.replace(/D/g, '').replace(/^1/g, '');
};
console.log(changeNumber("+1 (234)-567.8995"));