我在写测验的提示系统。提示将是答案的变体。为了使字谜更容易,我保留第一个和最后一个字母相同。如何生成易于保存标点符号的字典?
var _ = require('underscore');
var easy = function(s) {
if (s.length <= 1) {
return s;
}
return s[0] + _.shuffle(s.slice(1, -1)).join("") + s.slice(-1);
};
对于多个单词的答案,我想分开每个单词的字谜。我写道:
var peasy = function(s) {
return s.split(/\W/).map(easy).join(" ");
}
但是,这会在答案中丢失任何标点符号(用空格替换它)。我想将标点符号保留在原来的位置。我怎样才能做到这一点?
这里有三个例子来测试:
console.log(peasy("mashed potatoes"));
console.log(peasy("computer-aided design"));
console.log(peasy("sophie's choice"));
My功能peasy
以上失败第二和第三例子,因为它失去连字符和撇号。
你'easy'函数可以返回's'如果'(s.length <= 3)'。通过保留第一个和最后一个字符,只有长度大于3的字符串真的被洗牌... – ericbn