我正在处理以下字数统计代码,我想阻止它将像^%$£()*这样的特殊xts计为单词:
JS
$(function() {
$("#sys-tbox").each(function() {
var input = '#' + this.id;
counter(input);
$(this).keyup(function() {
counter(input);
});
});
});
function counter(field) {
var number = 0;
var text = $(field).val();
var word = $(field).val().split(/[ \n\r]/);
words = word.filter(function(word) {
return word.length > 0
}).length;
$('.words').text(words);
$('.character').text(text.length);
}
以下是Fiddle
如果已经回答,请提供链接。
由于
答案 0 :(得分:1)
您可以使用以下代码;
words = word.filter(function(word) {
var pattern = /^[a-zA-Z0-9_']*$/;
if (pattern.test(word)) {
return word.length > 0
}
}).length;
我假设你只想要字母数字字符。
您可以在此处查看工作演示: http://jsfiddle.net/tKKY6/4/
修改:您可以根据需要更新/^[a-zA-Z0-9_']*$/
答案 1 :(得分:1)
您可以在字词过滤器中添加一个条件,确保其中至少有一个数字或字母:
words = word.filter(function(word) {
return word.length > 0 && word.match(/^[A-Za-z0-9]/);
}).length;