我想要什么?
我想创建一个对象属性,用于大写字符串中的每个单词,可选地用空格替换下划线和/或首先用小写字符串。我想通过两个参数设置选项:
第一个参数是真的吗?
然后用空格替换所有下划线。
第二个参数是真的吗?
然后首先将整个字符串小写。
到目前为止,我有什么工作?
首先用空格替换下划线然后大写所有单词:
String.prototype.capitalize = function(underscore){
return (underscore ? this.replace(/\_/g, " ") : this).replace(/(?:^|\s)\S/g, function(a) { return a.toUpperCase(); });
}
var strUnderscoreFalse = "javaSCrIPT replace_First_underderscore with whitespace_false";
//replace underscore first = false
console.log(strUnderscoreFalse.capitalize());
var strUnderscoreTrue = "javaSCrIPT replace_First_underderscore with whitespace_true";
//replace underscore first = true
console.log(strUnderscoreTrue.capitalize(true));
首先使用小写字符串,然后将所有单词大写:
String.prototype.capitalize = function(lower){
return (lower ? this.toLowerCase() : this).replace(/(?:^|\s)\S/g, function(a) { return a.toUpperCase(); });
}
var strLcaseFalse = "javaSCrIPT lowercase First false";
//lowercase first = false
console.log(strLcaseFalse.capitalize());
var strLcaseTrue = "javaSCrIPT lowercase First true";
//lowercase first = true
console.log(strLcaseTrue.capitalize(true));
我有什么问题?
例如:
//replace underscore first = true and lowercase first = true
console.log(str.capitalize(true , true));
//replace underscore first = false and lowercase first = true
console.log(str.capitalize(false , true));