[英]How to get the first alphabetic word of string in javascript
我正在嘗試檢索字符串的第一個字母單詞,其中也可能包含標簽。
我試過使用 split(" ") 但它給了我空格。
let letter = ' <section class="contact" id="contact">';
let firstWord = letter.split (" ");
它應該只顯示 section 作為第一個單詞。 我有什么辦法嗎。 謝謝
要獲取第一個單詞,請匹配一個非字母,然后匹配一個或多個捕獲組中的字母,然后匹配另一個非字母:
let letter = ' <section class="contact" id="contact">'; let [, firstWord] = letter.match(/[^az]([az]+)[^az]/i); console.log(firstWord);
匹配字母(非字母數字)單詞的簡單正則表達式/[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+ ASCII 字母
let letter = ' <section class="contact" id="contact">'; let first_word = (letter.match(/[az]+/i) || [""])[0]; console.log(first_word)
您可以告訴正則表達式引擎僅在它周圍沒有數字或下划線時使用\\b
來匹配它,單詞邊界:
/\b[a-z]+\b/i
如果您想匹配任何 Unicode 字母單詞並定位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; // Or, // let regex = /(?<!\\p{L}\\p{M}*|[\\p{N}_])\\p{Alphabetic}+(?![\\p{L}\\p{N}_])/u console.log("1Один2,два-три".match(regex)[0]); // => два
也就是說,匹配 1+ 個字母或數字之前或之后的字母字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.