使用带 jquery 的日期戳创建 ID

Creating an id using a date stamp with jquery

虽然这不是创建唯一 ID 的完美解决方案,但使用日期戳将满足我的需要,即无需数据库即可引用通过电子邮件发送的表单提交。两个人在完全相同的毫秒内提交表单的可能性是遥不可及的,如果确实发生了,我可以根据个人电子邮件区分两者。使用 GUID 方法对我的需求(长号)有点过头了。

仅供参考 - 我用连音符拆分了日期戳并将其反转以便于查找。

所以这是我的 jquery 代码,它使用了三个文本框。我想合并代码,所以我只需要使用一个文本框。我在示例 2 中没有成功。任何关于如何执行此操作的 tips/suggestions 将不胜感激。

示例 1 - 有效

<script>
$(document).ready(function(){
    var ms = +new Date;
    $('#test').val(ms);
    var ms2 = $('#test').val();
    $('#test2').val(ms2.match(new RegExp('.{1,4}', 'g')).join("-"));
    var ms3 = $('#test2').val().split('').reverse().join('');
    $('#test3').val(ms3);
});
</script>


<input id="test" name="test" type="text">
<input id="test2" name="test2" type="text">
<input id="test3" name="test3" type="text">

示例 2 - 不起作用

<script>
$(document).ready(function(){
    var ms = +new Date;
    var ms2 = $(ms).text.match(new RegExp('.{1,4}', 'g')).join("-"));
    var ms3 = $(ms2).text.split('').reverse().join('');
    $('#test4').val(ms3);
});
</script>
<input id="test4" name="test4" type="text">

问题是 match 函数是一个字符串函数,但您将 ms 变量转换为数字。

这是修改后的代码,可以正常工作,还有 Working Fiddle

// shorter, conflict-safer document ready function
jQuery(function($) {
    // String operations (match) need the variable to be a string
    // Cast ms as a string 
    var ms = '' + +new Date;
    ms = ms.match(new RegExp('.{1,4}', 'g')).join("-").split('').reverse().join('');
    $('#test').val(ms);
});