繁体   English   中英

我需要输入一个字符串,取出非数字字符,然后如果字符串以1开头,则删除1

[英]I need to take an inputted string, take the non-numeric characters out, and then if the string begins with a 1, remove the 1

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")); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM