Регулярное выражение для извлечения мобильного номера 10 di git из строки в javascript - PullRequest
0 голосов
/ 06 января 2020

I wi sh, чтобы проверить, является ли мой входной аргумент номером телефона 10 di git, даже если во входе есть дополнительный текст.

Я пробовал это:

numbemail("my numberis 0987654321") 
function numbemail(data){
var input =data;  
var numb = new RegExp(
   "\\+?\\(?\\d*\\)? ?\\(?\\d+\\)?\\d*([\\s\\-.]?\\d{2,})+", "g"
);
var numbresult = input.match(numb);
if(numbresult){
   var re=[]
   if(numbresult[0].length === 10){
      re.push(numbresult[0])
   } else if(numbresult[0].length < 10) {  
      re.push(numbresult[0]+" ==>(WrongNumber: you provided Number is less than 10 digits)</p>")
   } else if(numbresult[0].length > 10) { 
      re.push(numbresult[0]+" ==> (WrongNumber: you provided Number is more than 10 digits)</p>")
   }
   console.log(re)
   } 
}

Когда я пытался это сделать, ожидая 10 цифр, но я получил numbresult[0].length= 11

Если я использовал строку 10 ди git, то numbresult[0].length= 10

Ожидаемый ввод:

input = ("мой номер мобильного телефона 9087654321")

Ожидаемый результат:

"9087654321"

Ответы [ 2 ]

0 голосов
/ 06 января 2020

Попробуйте сделать свой RegExp более простым. Вы пишете слишком сложный код для простой задачи.

let input = "my numberis 0987654321";
// filter symbols which can separate phone number dights
input = input.split(" ").join("").split("-").join("");
let phoneNumber = input.match(/\d{10,}/)[0];
0 голосов
/ 06 января 2020

Попробуйте это

var regex = /[\+]?\d{10}/

let strings = ['my numberis 0987654321', 'my number 8 is 9087654321', 'my number 8 is 9087654321123', 'my number 8 is 9087654']


strings.forEach(str => {
 let output = str.match(regex)
 if(output){
   console.log('number is valid', output[0])
   return
 }
    console.log('number is not valid - kindly enter 10 digit mobile number', output)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...