jQuery,如何根据用户输入创建从name-list.txt中提取的随机名称

jQuery,如何根据用户输入创建从name-list.txt中提取的随机名称,jquery,string,cordova,random,Jquery,String,Cordova,Random,我正在使用phonegap build构建一个手机应用程序,因此我仅限于HTML5、CSS和javascript/jQuery,但我希望实现以下目标 我想从可能是John Smith的用户那里获取输入,然后根据该输入,从文件中提取某些行,因此如果其他用户输入相同的名称,他们将得到相同的结果。我在谷歌上搜索了一些文章,用音节和名字中的字符数来生成一个名字等等,但似乎什么都做不到 我还计划对用户输入进行散列,然后用随机生成的名称将其存储在远程数据库中,然后如果再次出现散列,它将使用相同的名称,但设备

我正在使用phonegap build构建一个手机应用程序,因此我仅限于HTML5、CSS和javascript/jQuery,但我希望实现以下目标

我想从可能是John Smith的用户那里获取输入,然后根据该输入,从文件中提取某些行,因此如果其他用户输入相同的名称,他们将得到相同的结果。我在谷歌上搜索了一些文章,用音节和名字中的字符数来生成一个名字等等,但似乎什么都做不到

我还计划对用户输入进行散列,然后用随机生成的名称将其存储在远程数据库中,然后如果再次出现散列,它将使用相同的名称,但设备上的本地内容将非常有助于缩短加载时间等

您知道根据用户输入生成随机名称的最佳方法是什么吗?非常感谢您的帮助,谢谢

My name-list.txt如下所示:

cup
annihilator
bobby
val
halen
chupa'clark'bra
hawii
mushinator
release

为什么不将其保存为javascript对象而不是文本

然后,您可以快速调用ajax并获取对象。这也比使用普通文件和运行正则表达式快得多


根据文件内容的不同,我可以帮助您构建JSON。

我最终为此编写了自己的函数,它有点像贫民区,但它完成了这项工作。希望这对其他人有用:P

function generateName(name) {
        if(name != null) {
            // prepare the variables
            var sum = 0;
            var total = 0;
            var points = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26];

            // get the string
            var string = name.replace(/[^a-zA-Z]/g, "");
            if(string.length > 50) {
                string = string.substring(0,50);
            }

            // tally up the points of the letters
            for(var i = 0; i < string.length; i++ ) {
                var letter = string.charAt(i).toUpperCase();
                var letterIndex = letter.charCodeAt(0) - 65;
                sum += points[letterIndex];
            }

            // make the number bigger
            if(sum % 2 === 0) {
                if(sum < 100) {
                    total = parseInt(Math.pow(sum, (sum)));
                }
                else 
                {
                    total = parseInt(Math.pow(sum, (sum / 100)));
                }
                console.log("it was even" + total);
            }
            else {
                for(var i = 0; i < (sum*sum); i++) {
                    parseInt(total = total + sum);
                }
            }
            total = total + string.length;

            // check if the value is in a valid range, if not, loop again
            var word1 = total;
                while(word1 > 25000) {
                word1 = parseInt(word1 / 2);
            }

            var word2 = parseInt(word1.toString().split("").reverse().join(""))+string.length;

            while(word2 > 25000) {
                word2 = parseInt(word2 / 2);
            }
        }
        else {
            var word1 = Math.floor((Math.random()*25000)+1);
            var word2 = Math.floor((Math.random()*25000)+1);
        }

        $.ajax({
            type: "POST",
            url: "names.txt",
        }).done(function(msg) {
            var names = msg.split('\n');
            var name1 = names[word1].toLowerCase().replace(/\b[a-z]/g, function(letter) { return letter.toUpperCase(); });
            var name2 = names[word2].toLowerCase().replace(/\b[a-z]/g, function(letter) { return letter.toUpperCase(); });

            $("#name-space").hide();
            $("#name-space").html("<div id=\"name-wrapper\">Your name is:<br /><h1>" + name1 + " " + name2 + "</h1></div>");
            $("#name-space").fadeIn(100);
        });
    }

这不是问题的答案。充其量只是一个评论。更新!。。这个问题模棱两可。如果他能分享他的输入文件,我可以给出更准确的答案。我会考虑这个编辑作为一个答案。我感谢帮助,但数据存储不是目前的问题,我更在一个算法来计算一个基于用户输入的名称。