﻿StringUtility = function () {}

StringUtility.truncateString = function (str, number) {
    ///	<summary>
    ///	截断字符串
    ///	</summary>
    ///	<param name="str" type="String">输入字符串</param>
    ///	<param name="number" type="int">最大允许返回的ASCII长度</param>
    ///	<returns type="String">截断的字符串，ASCII长度不超过number</returns>
    
    if (StringUtility.getStrLength(str) <= number)
        return str;
    else {
        var retStr = "";
        var currentCount = 0;
        for (loop = 0; loop < str.length; loop++) {
            ch = str.charAt(loop);
            currentCount += StringUtility.getStrLength(ch);
            if (currentCount > number)
                break;
            else retStr += ch;
        }
        return retStr;
    }
}

StringUtility.isASCII = function (str) {
    ///	<summary>
    ///	检查输入字符是否是ASCII码
    ///	</summary>
    ///	<param name="str" type="String">输入字符</param>
    ///	<returns type="boolean">true:ASCII,False:非ASCII</returns>

    var chineseRegex = /[^\x00-\xff]/g;
    return !(str.replace(chineseRegex, "**") == "**");
}

StringUtility.getStrLength = function (str) {
    ///	<summary>
    ///	获取字符串长度(中文2个字符)
    ///	</summary>
    ///	<param name="str" type="String">输入字符串</param>
    ///	<returns type="int">字符串长度(中文2个字符)</returns>

    var chineseRegex = /[^\x00-\xff]/g;
    var strLength = str.replace(chineseRegex, "**").length;
    return strLength;
}

StringUtility.format = function() {
    ///	<summary>
    ///	字符串格式化。第一个参数是格式，第二个参数是格式化的第一个参数，第三个参数是格式化的第二个参数...
    /// var fmt = "Hello {0}!";StringUtility.format(fmt, "Andrew");
    ///	</summary>
    ///	<param name="str" type="String">输入字符串</param>
    ///	<returns type="int">字符串长度(中文2个字符)</returns>
    
    if( arguments.length == 0 )
        return null; 

    var str = arguments[0]; 
    for(var i=1;i<arguments.length;i++) {
        var re = new RegExp('\\{' + (i-1) + '\\}','gm');
        str = str.replace(re, arguments[i]);
    }
    return str;
}

