簡體   English   中英

如何在javascript中獲取字符串的第一個字母單詞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM