js生成guid

时间:2025-01-19 17:37:40
        //表示全局唯一标识符 (GUID)。
        function Guid(g) {
            var arr = new Array(); //存放32位数值的数组
            if (typeof (g) == "string") { //如果构造函数的参数为字符串
                InitByString(arr, g);
            }
            else {
                InitByOther(arr);
            }

            //返回一个值,该值指示 Guid 的两个实例是否表示同一个值。
             = function (o) {
                if (o && ) {
                    return () == ();
                }
                else {
                    return false;
                }
            }
            //Guid对象的标记
             = function () { }
            //返回 Guid 类的此实例值的 String 表示形式。
             = function (format) {
                if (typeof (format) == "string") {
                    if (format == "N" || format == "D" || format == "B" || format == "P") {
                        return ToStringWithFormat(arr, format);
                    }
                    else {
                        return ToStringWithFormat(arr, "D");
                    }
                }
                else {
                    return ToStringWithFormat(arr, "D");
                }
            }
            //由字符串加载
            function InitByString(arr, g) {
                g = (/\{|\(|\)|\}|-/g, "");
                g = ();
                if ( != 32 || (/[^0-9,a-f]/i) != -1) {
                    InitByOther(arr);
                }
                else {
                    for (var i = 0; i < ; i++) {
                        (g[i]);
                    }
                }
            }
            //由其他类型加载
            function InitByOther(arr) {
                var i = 32;
                while (i--) {
                    ("0");
                }
            }
            /*
            根据所提供的格式说明符,返回此 Guid 实例值的 String 表示形式。
            N  32 位: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
            D  由连字符分隔的 32 位数字 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
            B  括在大括号中、由连字符分隔的 32 位数字:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
            P  括在圆括号中、由连字符分隔的 32 位数字:(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
            */
            function ToStringWithFormat(arr, format) {
                switch (format) {
                    case "N":
                        return ().replace(/,/g, "");
                    case "D":
                        var str = (0, 8) + "-" + (8, 12) + "-" + (12, 16) + "-" + (16, 20) + "-" + (20, 32);
                        str = (/,/g, "");
                        return str;
                    case "B":
                        var str = ToStringWithFormat(arr, "D");
                        str = "{" + str + "}";
                        return str;
                    case "P":
                        var str = ToStringWithFormat(arr, "D");
                        str = "(" + str + ")";
                        return str;
                    default:
                        return new Guid();
                }
            }
        }
        //Guid 类的默认实例,其值保证均为零。
         = new Guid();
        //初始化 Guid 类的一个新实例。
         = function () {
            var g = "";
            var i = 32;
            while (i--) {
                g += (() * 16.0).toString(16);
            }
            return new Guid(g);
        }


实例:

var guid=();
alert(());