2016-05-26 10 views
1

JavaScriptを使用して文章を作成します。Javascriptで文章例

入力:

hello 
world 
example 

私はこれまでのところ、これを試してみました:

$('.sentenceCase').click(function(event) { 
     var rg = /(^\w{1}|\.\s*\w{1})/gi; 
     var textareaInput=$('.textareaInput').val(); 
     myString = textareaInput.replace(rg, function(toReplace) { 
      return toReplace.toUpperCase(); 
     }); 

     $('.textareaInput').val(myString); 
    }); 

I入力した場合:私の出力は大丈夫ですmy name is hello. i have a pen。 (出力:My name is hello. I have a pen

しかし、最初例えば、私のコードの出力は次のとおりです。

Hello 
world 
example 

私は出力になりたい:

Hello 
World 
Example 

はどのように私はそれを行うことができますか? (任意のfullstop後の文字が大文字の文字になります「」)

+1

http://stackoverflow.com/questions/19089442/convert-string-to-sentence-case-in-javascript – vaso123

+0

@Chonchoi - 質問には具体的に答えていませんが、オンライン正規表現テスターが役立つことがあります。例:https://regex101.com/これは、あなたが望む結果に到達するためにさまざまなことをリアルタイムで試みることができ、正規表現が何をするのかを見るのに役立ちます。 – Toby

+1

'/ \ b \ w/g'がうまくいくはずです。 –

答えて

0

手紙は、グループ内の最初の文字で、そう...

/\b\w/g 

はワード境界の後に来る単語の文字と一致した場合にのみ、気に - それぞれの単語で、すなわち最初の文字を。

2

これを試してみてください(。)あなたのコードで

$('.sentenceCase').click(function(event) { 
    var rg = /(^\w{1}|\.\s*\w{1}|\n\s*\w{1})/gi; 
    var textareaInput=$('.textareaInput').val(); 
    myString = textareaInput.replace(rg, function(toReplace) { 
     return toReplace.toUpperCase(); 
    }); 
$('.textareaInput').val(myString); 
}); 

、あなたはfullstopをチェックされているが、あなたのテキストは、新しい行が含まれていますキャラクター。それが問題です。

この正規表現では、最初と最後の「。」の後ろの最初の文字が検索されます。文字列に '\ n'と入力します。

+0

は改行とフルストップの両方をチェックする必要があります。 –

+0

var rg = /(^\w{1}|\s\\\\\1}|\n\s*\w{1})/gi;この正規表現@ChoncholMahmudを使用する – sabith