問題

2016-04-25 4 views
0

は、私は、次のコードを持っていますが、本部IDパラからのテキストが最後の言葉と次の文の最初の単語は1単語の代わりに、2問題

コードとしてそれに参加し、意見ました:

var value = $('#RichHtmlField_displayContent').text(); 

console.log("text", value) 

    if (value.length == 0) { 
     $('#show_word_count').html(0); 
     return; 
    } 

    var wordCount = value.match(/\S+/ig).length 
     $('#show_word_count').html(wordCount); 
    }; 

$(document).ready(function() { 
     $('#RichHtmlField_displayContent').change(counter); 
     $('#RichHtmlField_displayContent').keydown(counter); 
     $('#RichHtmlField_displayContent').keypress(counter); 
     $('#RichHtmlField_displayContent').keyup(counter); 
     $('#RichHtmlField_displayContent').blur(counter); 
}); 

だから、私は何をしたい、その後、総単語数をカウントすべてのピリオド、疑問符の後にスペースを追加しています。

+1

コードの書式を整理すると、孤立した括弧が '};'であることがわかります。また、実用的なサンプル/スニペットを提供した場合は、非常に便利です。 – Moob

答えて

0

の代わりに正規表現を使用してあなたが正規表現の区切り文字を使用して、配列にテキストを分割することができます一致:あなたの質問ごとに空白文字、終止符と疑問符に基づいてこののみ分割

var wordCount = value.split(/[\s.?]+/).length 

(とカウントされますハイフンを1語として含む語)。必要に応じて、単語セパレータをRegExに追加することができます。

+0

最初に働いてくれてありがとう、おかげで...すぐに答えが期待できませんでした。このサイトを初めて使用する。本当に皆さんの助けに感謝します。 –

+0

@JohnSmith問題ありません:) Stack Overflowへようこそ! – lerouche

+0

こんにちは作品はOKですが、新しい行のために、最初の仕事と最後の仕事を加えて、それを1つと見る –

2

正規表現の "s"を "w"に置き換えると、代わりに単語が検索されます。下記を参照してください -

function wordCount() { 
 
    var value = document.getElementById("text").value; 
 
    document.getElementById("result").innerText = value.match(/\w+/ig).length; 
 
} 
 

 
wordCount();
<textarea id="text">Some text. Here!</textarea> 
 
<div id="result"></div> 
 
<button onclick="wordCount()">Word Count</button>

これは(アンダースコアを含む)、文字や数字の任意の文字列にマッチします。正規表現のより詳細な説明については

このquestionMozilla Developer Networkをチェックしてください。

0

replaceを使用して分割することができます。

JSFiddleを参照してください。

注:すべての句読点には最適化されていません(たとえば...)。必要なものをアーカイブするように正規表現を変更できます。