我正在研究一个特殊的脚本,用于修复文本区域内的字母。我发现我堆叠的一个问题。在Stackoverflow上,我找不到解决方案,需要帮助。
我的脚本有一个系统,用于识别每个单词,以大写的第一个字母开头,以及一个单词是否具有所有小写单词。但是,如果我得到类似LoWeRcAsE
我的脚本不会将其识别为错误。
例:
L - ok
o - ok
W - not ok
e - ok
R - not ok
c - ok
A - not ok
s - ok
E - not ok
如您所见,第一个字符L
在大写时是可以的,但如果是小写也可以,但单词中的任何其他字符都需要小写。
我尝试使用Stackoverflow的这个解决方案,但它不起作用。
怎么做?
您可以使用此正则表达式使用单词边界来验证您的情况:
/b[a-zA-Z][a-z]*b/
这将允许第一个字符为大写或小写字母,但强制所有其他字符为小写字母。
正则表达式演示
我创建了这个函数来检查单词的大小写。您可以对文本区域中的每个单词调用此值。
function checkCapitalization(s){
return (s === s.charAt(0).toUpperCase() + s.slice(1).toLowerCase());
}
checkCapitalization("LoWeRcAsE")
您需要多久检查一次特定字符串,但您可以创建一个方法来检查字符串,如下所示:
String.prototype.isCamelCase = function(){
for( var i=1;i< this.length;i++){
if( this.charCodeAt(i) < 97) {
return true;
}
}
return false;
}
"Baz".isCamelCase(); // returns false
"fOo".isCamelCase(); // returns true