簡體   English   中英

使用正則表達式OR替換字符

[英]using regex OR to replace a character

我有一個正則表達式正在搜索空白或下划線的實例,以將其替換為破折號。

function spinalCase(str) {

var origSentence = str;

// case of camelCase
origSentence = origSentence.replace(/([a-z])([A-Z])/g, '$1 $2');


// convert to lower case and remove whitespace or underscores for dashes
origSentence = origSentence.toLowerCase().replace(/ /g,"-");


return origSentence;
}


spinalCase('The_Andy_Griffith_Show');

我不確定如何在/ / g之后向正則表達式添加邏輯“ OR”,或者我是否需要將其添加到“ if”語句中,這看起來笨拙且笨拙。 任何幫助表示贊賞。

使用| 或角色類別:

.replace(/ |_/g,"-");
.replace(/[ _]/g,"-");

字符類將與列出的任何內容匹配。 除少數元字符外,其中幾乎所有字符都將被視為文字,例如,開頭的^將使匹配無效(除了...以外,所有內容都作為匹配),而ab則使ab之間發生變化。

可能比我想念的更多。

| 是最接近邏輯或的。 match 1|match 2

並結合在一起(我假設我們都是大人,而且我不需要告訴您,實際上這樣做是不好的做法):

/(John|Thom)s[oe]n/

哪個將匹配:

Johnson
Johnsen
Thomson
Thomsen

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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