Извлечение символов или слов между 2 символами

#javascript #substring #extract #symbols

#javascript #подстрока #извлечение #символы

Вопрос:

Есть ли какой-либо способ извлечь текст из 2 символов? Мне сказали использовать:

 var email = "forename.surname@arco.co.uk";
document.write(email.substring(.,@));
  

Использование substring, похоже, работает только с позицией символа, а не с символами. Я просто хочу извлечь символы между «.» и «@»

Ответ №1:

Конечно, вы можете использовать регулярное выражение:

 var lastname = email.match(/[.]([^.] )@/)[1]
  

Объяснение:

 [.]     # match dot literally
(       # open capture group
  [^.]  # match anything other than a dot
)       # close capture group
@       # match @ character
  

Комментарии:

1. Спасибо за быстрый ответ 🙂 Но я должен использовать подстроку, хотя ваш ответ сработал 🙂

Ответ №2:

Вы могли бы использовать регулярное выражение:

 var email = "forename.surname@arco.co.uk";
email.replace(/. .(. )@. /, '$1'); // surname
  

Или вы могли бы использовать substring:

 email.substring(email.indexOf('.') 1, email.indexOf('@'))
  

Комментарии:

1. Ваши два метода не совсем эквивалентны. Рассмотрим ввод first.middle.last@someplace

2. @JammyDoger К вашему сведению, indexOf решение даст вам middle.last при использовании first.middle.last@email.com , в то время как решение регулярных выражений дает вам только last (хотя вы, вероятно, не хотите использовать .replace здесь)