我正在通过丽塔库的丹尼尔Shiffman的演示启发字发生器。眼下,该代码将使用线上的所有文字和标点符号之间的空间:如何从RiTa.js随机单词生成器中移除空格?
output += " ";
我一直在试图找出如何更改代码,使空间不标点符号之间(如周期)出现,话。我认为,要做到这一点最简单的方法是使用一个if /离开标点不变,但增加了空间的话,但我有一个很难搞清楚what functions from the Rita library to use for this,以及语法else语句。
任何想法?这里是我的代码现在:
var input;
var button;
var lexicon;
function setup() {
noCanvas();
lexicon = new RiLexicon();
input = createInput('As I say a noun is the name of a thing.');
button = createButton('submit');
input.changed(processRita);
button.mousePressed(processRita);
input.size(400);
}
function processRita() {
var s = input.value();
var rs = new RiString(s);
var words = rs.words();
var pos = rs.pos();
console.log(words);
console.log(pos);
var output = '';
for (var i = 0; i < words.length; i++) {
if (/nn.*/.test(pos[i])) {
var alliterations = lexicon.alliterations(words[i]);
if(alliterations.length == 0){
output+=words[i];
}else{
output += alliterations[Math.floor(Math.random() * alliterations.length)];
}
//console.log("noun");
//console.log(alliterations.length);
} else if (/jj.*/.test(pos[i])) {
var alliterations = lexicon.alliterations(words[i]);
output += alliterations[Math.floor(Math.random() * alliterations.length)];
//console.log("adjective");
} else if (/vb/.test(pos[i])) {
var alliterations = lexicon.alliterations(words[i]);
output += alliterations[Math.floor(Math.random() * alliterations.length)];
//console.log("verbs");
}
else {
//console.log(words[i]);
output += words[i];
} {
output += " ";
}
}
createP(output);
}
>“你可以只使用正则表达式测试一个字符串是否与标点符号相匹配,或者只是对您关心的每个标点符号使用一系列相等性检查。“我正在考虑这样做,但我不知道如何在函数中设置它。我尝试了各种各样的东西,但它破坏了代码或使间距不均匀(仅在原始代码中的POS后添加空格)。 –