0

我需要检查文本区域是否包含一些特殊字符,所以我需要将它们数为 2(SMS 长度)。

我写了这段代码,但似乎找不到特殊字符,如果只写“€€€”

请你帮助我好吗?另外,如果你想直接重写函数,没有问题。谢谢你!

var SPECIAL_CHARS   = Array('€', '%');

function charUsed() {
    var count                   = $('#text').val().length;
    var chars                   = $('#text').val().split("");
    var numberOfSpecialChars    = 0;
    if ($.inArray(chars, SPECIAL_CHARS) > -1) {
        numberOfSpecialChars++;
    }
    return count + numberOfSpecialChars;
} // function
4

2 回答 2

3

重写:

var nbSpecialChars = $('#text').val().split(/[€%]/).length - 1;

这个想法是制作一个字符串数组,使用您的特殊字符作为分隔符:

'some € chars %' => ["some ", " chars ", ""]

然后使用这个数组的长度来推断这些字符的数量。还有许多其他(更快)的解决方案,但这个很短。

于 2013-09-03T15:25:55.443 回答
2

http://jsfiddle.net/KSm7J/

var chars = $('#text').val().match(/[€%]/g).length;
alert(chars);
于 2013-09-03T15:52:07.827 回答