2017-01-03 23 views
1

テキスト領域内の文字を修正するための特別なスクリプトに取り組んでいます。スタックしたところで問題が1つ見つかりました。 Stackoverflowで、私はこれのための解決策を見つけることができませんでしたし、ヘルプが必要です。文字列の上級チェック文字(大文字/小文字)

私のスクリプトには、各単語を最初の最初の文字から始まり、単語にすべて小文字の単語が含まれていると認識するためのシステムがあります。しかし、私がLoWeRcAsEのようなものを取得した場合、私のスクリプトはこれをエラーとして認識しません。

例:大文字でも小文字という言葉小文字である必要が中に他の文字であれば[OK]をすることができたときに

L - ok 
o - ok 
W - not ok 
e - ok 
R - not ok 
c - ok 
A - not ok 
s - ok 
E - not ok 

ご覧のように、最初の文字Lはokです。

私はTHISのソリューションをStackoverflowから試してみましたが、うまくいきませんでした。

これを行う方法?

+1

これは簡単に思えます。あなたは '[A-Z] [a-z] *' || '[a-z] *'(多かれ少なかれ)。 (答えは1つの明確な正規表現にまとめられますが、同じことです) –

答えて

2

あなたはあなたのケースを検証するために単語の境界を使用してこの正規表現を使用することができます。

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

これは、最初の文字が大文字または小文字ことを可能にするが、小文字であることを他のすべての文字を強制します。

RegEx Demo

+2

これは最も難しい選択です。ここで私は本当に素晴らしい答えを見つけるが、私は最も簡単なものと簡単なものを選ぶ。私が正規表現をどのように書いているかは、ほぼ5年後に何度も何度も学ぶことがわかります。シンプルで清潔。ありがとう@anubhava –

1

私は、単語の大文字と小文字をチェックするために、この関数を作成しました。 これは、テキスト領域の各単語で呼び出すことができます。

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

 
checkCapitalization("LoWeRcAsE")

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 
関連する問題