Найти Telnumber и специальный формат и адрес электронной почты в тексте, я использую javascript ReactJs - PullRequest
0 голосов
/ 18 сентября 2018
**input =>** 
+15556662255 blabla +23334445567 blabla alex@gmail.com blabla dany@yandex.com blabla

**i want to output =>**
+15556662255
+23334445567
alex@gmail.com
dany@yandex.com

(

(+ и 11 символов и любой адрес электронной почты выделять весь текст после выбора и списка)

я попробую это;

var numbers = this.state.text1.match(/[+-]?\d+(?:\.\d+)?/g).map(Number)
          console.log("numbers= ",numbers)
          let myresult = this.state.text1.replace('+'+numbers[0], "");

          console.log("str= ",myresult)
            this.setState({
                text1: '+'+myresult,
                text2: numbers,
            })

1 Ответ

0 голосов
/ 18 сентября 2018

Выполнить и посмотреть комментарии.

const str = '+15556662255 blabla +23334445567 blabla alex@gmail.com blabla dany@yandex.com blabla';

// Remove the multi space and then split by space
const parts = str.replace(/\s\s+/g, ' ').trim().split(' ');

console.log(' ------ Parts ------');
console.log(parts);

// Now that we have each part, detect which is a phone and which is an email
const regexEmail = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;

const regexPhone = /^\+[0-9]{11}$/;

console.log('\n ------ Check ------ ');

// Filter the data to only keep emails and phone number
const filtered = parts.filter((x) => {
  if (regexEmail.test(x)) {
    console.log(`${x}, is a email`);

    return true;
  }

  if (regexPhone.test(x)) {
    console.log(`${x}, is a phone number`);

    return true;
  }

  console.log(`${x}, is something invalid`);

  return false;
});


console.log('\n ------ Filtered ------ ');

console.log(filtered);
...