Как получить первое алфавитное слово строки в JavaScript - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь получить первое буквенное слово строки, которая также может включать теги.

Я пробовал использовать split (""), но это дает мне пробелы.

let letter = ' <section class="contact" id="contact">';
let firstWord = letter.split (" "); 

Это должно просто показать раздел в качестве первого слова.Есть ли способ, которым я могу сделать.Спасибо

Ответы [ 3 ]

1 голос
/ 10 июня 2019

Простое регулярное выражение для соответствия буквенным (не буквенно-цифровым) словам /[a-zA-Z]+/g

let letter = ' <section class="contact" id="contact">';
let words  = letter.match (/[a-zA-Z]+/g);  // Match all alphabet 
let firstWord = words.length > 0 ? words[0] : '';
console.log(firstWord);
1 голос
/ 10 июня 2019

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

Для текущего сценария вы можете сопоставить блок из 1+ букв ASCII

let letter = ' <section class="contact" id="contact">';
let first_word = (letter.match(/[a-z]+/i) || [""])[0];
console.log(first_word)

Вы можете указать обработчику регулярных выражений совпадать с ним только в том случае, если вокруг него нет цифр или подчеркиваний, используя \b, границы слов:

/\b[a-z]+\b/i

И если вы хотите сопоставить любое слово буквы Юникода и цель ECMAScript 2018 и новее, вы можете использовать

let regex = /\p{Alphabetic}+/u;
console.log("Один,два".match(regex)[0]); // => Один

Или, с границами слов Unicode,

let regex = /(?<![\p{Alphabetic}\p{N}])\p{Alphabetic}+(?![\p{Alphabetic}\p{N}])/u;
console.log("1Один2,два-три".match(regex)[0]); // => два

То есть для сопоставления 1+ буквенных символов, которым не предшествуют и не следуют буквы или цифры.

1 голос
/ 10 июня 2019

Чтобы получить первое слово, сопоставьте не букву, затем одну или несколько букв в группе захвата, затем другую не букву:

let letter = ' <section class="contact" id="contact">';
let [, firstWord] = letter.match(/[^a-z]([a-z]+)[^a-z]/i);
console.log(firstWord);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...