2016-04-25 55 views
0

我有以下的代碼,但是從事業部ID對文本有硬道理,下一句的第一個字加盟,並享有其作爲1個字,而不是2問題與字數腳本fullstops

代碼:

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 

這隻分裂基礎上的空白,句號和問號按您的問題(並計帶連字符的單詞作爲一個單詞)。您可以根據需要將更多的單詞分隔符添加到RegEx中。

+0

感謝隊友第一次工作......沒有期待馬上回答。第一次使用本網站。真的很感謝你的幫助大家 –

+0

@JohnSmith沒問題:)歡迎來到Stack Overflow! – lerouche

+0

嗨工作好,但對於一條新線,它將第一份工作和最後一份工作放在一起,並將其視爲一個,除非有一個完整的 –

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

注意:它沒有針對所有標點進行優化(例如...),您可以修改正則表達式來存檔您需要的東西。