![](/img/trans.png)
[英]How to convert between camelCase PascalCase snake_case kebab-case (JS)
[英]How do I covert kebab-case into PascalCase?
var text = "welcome-to-a-New-day";
toPascalCase(text); // "WelcomeToANewDAY"
toCamelCase(text); // "WelcomeToANewDAY"
我如何將其轉換為PascalCase
和camelCase
?
完全兼容ES5的方法是,使用此簡單的正則表達式/-\\w/g
查找所有短划線,后跟字母數字字符。 然后只需刪除破折號和大寫字符即可。
對於pascal情況,也可以通過使用^\\w|-\\w
檢查字符串中的第一個字符來實現。 其余部分相同。
以下是幾個示例:
console.log(toCamelCase("welcome-to-a-New-day")); console.log(toPascalCase("welcome-to-a-New-day")); console.log(toCamelCase("bsd-asd-csd")); console.log(toPascalCase("bsd-asd-csd")); function toCamelCase(text) { return text.replace(/-\\w/g, clearAndUpper); } function toPascalCase(text) { return text.replace(/(^\\w|-\\w)/g, clearAndUpper); } function clearAndUpper(text) { return text.replace(/-/, "").toUpperCase(); }
您可以使用replace
和RegExp
let string = "welcome-to-a-New-day" function toPascalCase(str){ let arr = str.split('-'); let last = arr[arr.length - 1]; str = str.replace(/-\\w/g,(x) => `${x[1].toUpperCase()}`) str = str[0].toUpperCase() + str.substring(1,str.length - last.length) + last.toUpperCase(); return str; } function toCamelCase(str){ return str.replace(/-\\w/g,(x) => `${x[1].toUpperCase()}`) } console.log(toPascalCase(string)) console.log(toCamelCase(string))
這是一種使用string.replace()
和正則表達式的方法:
const camelCase = str => str.replace(/\\s*-\\s*\\w/g, parts => parts[parts.length-1].toUpperCase()); const pascalCase = str => camelCase(str).replace(/^\\w/, s => s.toUpperCase()); const cases = str => ({ pascal: pascalCase(str), camel: camelCase(str) }); console.log(cases('welcome-to-a-New-day')); console.log(cases('welcome -to-a- New - day'));
const myString = 'welcome-to-a-New-day'; function capitalize(string) { // take first character, uppercase it // add the rest of the string return string.charAt(0).toUpperCase() + string.slice(1); } function pascalize (string) { // splitting words by dash const words = string.split('-') // use capitalize function to capitalize every word const capitalized = words.map(word => capitalize(word)) // glue up words with .join() return capitalized.join('') } function camelize (string) { // splitting words by dash const words = string.split('-') // use capitalize function to capitalize every but first word const capitalized = words.map((word, index) => { if (index === 0) return word return capitalize(word) }) // glue up words with .join() return capitalized.join('') } console.log(pascalize(myString)) console.log(camelize(myString))
你去
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
function getPascalFromSnake(input){
return input.split("-").map(capitalizeFirstLetter).join("")
}
function getCamelFromSnake(input){
var toReturn = getPascalFromSnake(input);
return toReturn.charAt(0).toLowerCase() + toReturn.slice(1);
}
function getCase(str) {
let arr= str.split("-");
return arr.reduce((acc, word,i)=>{
let lower = word.toLowerCase(),
cap = lower.slice(0,1).toUpperCase() + lower.slice(1);
return {
camel: i === 0 ? lower : acc.camel + cap,
pascal: acc.pascal + cap
}
},{camel:"",pascal:""})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.