我想知道如何將字符串轉換爲JavaScript中的一個pascal案例字符串(&最正確的正則表達式)。在Javascript中將字符串轉換爲Pascal案例(又名UpperCamelCase)
轉換實例:
- 雙桶=雙桶
- 雙桶=雙桶
- 雙桶=雙桶
- 雙桶=雙桶
查詢this link瞭解更多Pascal案例信息
我想知道如何將字符串轉換爲JavaScript中的一個pascal案例字符串(&最正確的正則表達式)。在Javascript中將字符串轉換爲Pascal案例(又名UpperCamelCase)
轉換實例:
查詢this link瞭解更多Pascal案例信息
s = s.replace(/(\w)(\w*)/g,
function(g0,g1,g2){return g1.toUpperCase() + g2.toLowerCase();});
正則表達式查找單詞(這裏使用\w
- 字母數字和下劃線定義),並將它們分爲兩組 - 第一個字母和單詞的其餘部分。然後它使用一個函數作爲回調來設置正確的大小寫。
或者,這也將工作 - 少一點正則表達式多字符串操作:
s = s.replace(/\w+/g,
function(w){return w[0].toUpperCase() + w.slice(1).toLowerCase();});
我要補充這不是帕斯卡情況可言,因爲你有話障礙(helloworld
vs hello-world
)。如果沒有他們,這個問題幾乎無法解決,即使是用字典。這通常稱爲標題案例,雖然它不處理「FBI」,「the」或「McDonalds」等詞。
如果你知道第二個字,您可以:
function pascal (str, match) {
return str.split(' ').map(function(word){
let i = word.search(match);
return word.charAt(0).toUpperCase() + word.slice(1, i - 1) + word.charAt(i).toUpperCase() + word.slice(i + 1);
}).join('');
}
例如:在
pascal('someservice', 'service') // 'SomeService'
現貨方面,雖然我覺得標題案例是Pascal大小寫(Uppercamelcase) 標題案例=雙不同 - 桶 帕斯卡案件=雙桶 – Blowsie 2010-11-01 12:05:37
標題案件可能具有誤導性。它有一個明顯的含義,不符合正常的英語。 Titlecase是一個Unicode套管屬性,主要用於只有第一個字母應大寫。它適用於某些有向圖與其他角色不同,如DZvsDzvsdz。相比之下,英文標題的適當格式的工作方式卻完全不同,忽略了簡短的介詞,除了第一個或最後一個單詞等。 – tchrist 2010-11-01 16:10:23