我有我的客戶這個複雜的問題,我無法找到答案,所以現在我會試着問你們。javascript正則表達式幫助
的追求是:
我認爲,一個規則可能是:點 其中 號碼後立即出現,不作爲句子。這 意味着 「8.marts」和「2.567」中的句子不計爲 個字點。作爲迴應,每個字點 可能被忽略(如果現在句子 以數字結尾:「Vi kommer k1.8」) 但它可能總是不太經常 。
另一個可能是:如果有一個 字符(一個字母或數字) 緊接着一個句子不是 短語句子。這將使得我們避免計算在「f.eks」,「bl.a.」中存在的句子 。 和「cand.mag。」。
我希望我能在這裏得到幫助。
我的代碼:
<script>
function word_count(field, count) {
var wordsNumberOverSeven = 0;
var wordsNumber = 0
var contentText = $(\'#lix_word_count\').val();
contentText = contentText.replace(\'?\', \'.\');
contentText = contentText.replace(\'!\', \'.\');
contentText = contentText.replace(\',\', \'\');
contentText = contentText.replace(\';\', \'\');
contentText = contentText.replace(\':\', \'\');
contentText = contentText.replace(\'\n\', \' \').replace(/^\s+|\s+$/g,\'\').replace(/\s\s+/g,\' \');
var matchDots = contentText.split(\'.\').length-1;
var match = contentText.split(\' \');
$.each(match, function(){
if (this.length > 0)
wordsNumber += 1;
if (this.length >= 7)
{
wordsNumberOverSeven += 1;
}
});
var lixMatWords = wordsNumber/matchDots;
var lixMatLongWords = (wordsNumberOverSeven * 100)/wordsNumber;
var lixMatch = Math.round((lixMatWords + lixMatLongWords) *100)/100;
var lixType = \'\';
if (lixMatch <= 24)
lixType = \'Lixen i din tekst er \'+ lixMatch +\', dvs. at teksten er meget let at læse.\';
else if (lixMatch <= 34)
lixType = \'Lixen i din tekst er \'+ lixMatch +\', dvs. at teksten er let at læse\';
else if (lixMatch <= 44)
lixType = \'Lixen i din tekst er \'+ lixMatch +\', dvs. at teksten ligger i midterområdet.\';
else if (lixMatch <= 54)
lixType = \'Lixen i din tekst er \'+ lixMatch +\', dvs. at teksten er svær at læse.\';
else
lixType = \'Lixen i din tekst er \'+ lixMatch +\', dvs. at teksten er meget svær at læse.\';
/** alert(lixType +\'\nDots: \'+ matchDots +\'\nWords: \'+ wordsNumber +\'\nLangeord: \'+ wordsNumberOverSeven); **/
alert(lixType);
}
</script>
請重新說明問題,以便清楚您需要什麼。另外,選擇更好的標題;不需要在標題中包含「javascript」和「regex」,因爲這些是標籤,這就足夠了。 – 2011-05-17 09:23:49
您需要重申您想要匹配的內容,而不是客戶認爲應該如何完成的內容。 – 2011-05-17 09:31:01