我需要检查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
答案 0 :(得分:3)
重写:
var nbSpecialChars = $('#text').val().split(/[€%]/).length - 1;
我们的想法是创建一个字符串数组,使用您的特殊字符作为分隔符:
'some € chars %' => ["some ", " chars ", ""]
然后使用此数组的长度来推断这些字符的数量。还有许多其他(更快)的解决方案,但这个解决方案很短。
答案 1 :(得分:2)
var chars = $('#text').val().match(/[€%]/g).length;
alert(chars);