字符串中的高级检查字母大小写(上/下)

时间:2017-01-03 18:53:10

标签: javascript regex

我正在制作一个特殊的脚本来修复文本区域内的字母。我发现了一个堆叠的问题。在Stackoverflow上,我找不到解决方案,需要帮助。

我的脚本有一个系统,用于识别从第一个字母开头的每个单词,以及一个单词是否包含全部小写单词。但是,如果我得到类似<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="ejbModule"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/WebSphere v6.1 JRE"/> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.ibm.ws.ast.st.runtime.runtimeTarget.v61/was.base.v61"/> <classpathentry exported="true" kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry exported="true" kind="lib" path="/sharedlib/fetch/6.1.04/fetchservices.jar"/> <classpathentry exported="true" kind="lib" path="/sharedlib/fetch/6.1.04/servicemf.jar"/> <classpathentry combineaccessrules="false" kind="src" path="/gcponlineWeb"/> <classpathentry kind="output" path="ejbModule"/> </classpath> 的内容,我的脚本就不会将此视为错误。

示例:

LoWeRcAsE

就像你看到的那样,第一个字符L - ok o - ok W - not ok e - ok R - not ok c - ok A - not ok s - ok E - not ok 在大写时是可以的,但如果是小写的话也可以,但是单词中的任何其他字符都必须是小写的。

我尝试使用Stackoverflow的THIS解决方案,但它不起作用。

怎么做?

3 个答案:

答案 0 :(得分:2)

您可以使用此词法边界来验证您的案例:

/\b[a-zA-Z][a-z]*\b/

这将允许第一个字符为大写或小写字母,但强制所有其他字符为小写字母。

RegEx Demo

答案 1 :(得分:1)

我创建了这个函数来检查单词的大小写。 您可以在文本区域中的每个单词上调用它。

function checkCapitalization(s){
  return (s === s.charAt(0).toUpperCase() + s.slice(1).toLowerCase());
}

checkCapitalization("LoWeRcAsE")

答案 2 :(得分:1)

不确定您需要检查特定字符串的频率,但您可以创建一个方法来检查字符串,如下所示:

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