Jquery检查文本值中是否存在特殊字符

时间:2013-09-03 15:21:29

标签: javascript jquery

我需要检查textarea是否包含一些特殊字符,所以我需要将它们计算为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

2 个答案:

答案 0 :(得分:3)

重写:

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

我们的想法是创建一个字符串数组,使用您的特殊字符作为分隔符:

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

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

答案 1 :(得分:2)

http://jsfiddle.net/KSm7J/

var chars = $('#text').val().match(/[€%]/g).length;
alert(chars);