gpt4 book ai didi

javascript将字符串中的空格转换为符号

转载 作者:行者123 更新时间:2023-11-30 09:32:00 25 4
gpt4 key购买 nike

如何将字母之间的空格转换为“-”等其他字符?

SOLVED:

For those who have the same problem:

var namePicked = names[Math.floor(Math.random() * names.length)];
var x = namePicked.replace(/[A-Za-z]/g, "_").replace(/\s/g, "-");
var y = x.split("").join(" ");

this will turn John Smith (randomly chosen) into

_ _ _ _ - _ _ _ _ _

通过“空格”很好地间隔开,字母变成下划线和空格 变成破折号。这是通过“javascript”方式解决的。你也可以做 这与循环。

这是我的代码(之前):

// list of names
var names = ["John Smith", "Joe Doe", "Ian Nobody", "James Black"];
var namePicked = names[Math.floor(Math.random() * names.length)];
var nameArray = new Array(namePicked.length);

window.onload = function() {
//convert chosen name to array and replace letters with dashes
for (var i = 0; i < nameArray.length; i++) {
nameArray[i] = "_";
}
//remove comma
var nameHidden = nameArray.join(" ");
document.getElementById("nameDisplay").innerHTML = nameHidden;
}

我只能把John Smith变成一行10个下划线,我想变成4个underscores (名字)带有 dash (空格)最后 5 之前 underscores (姓)。还有space每个之间underscore 。很抱歉我没有早点提到这一点。我试过这个:

for (var i = 0; i < nameArray.length; i++) {
if (nameArray[i] == " ") {
nameArray[i] = " ";
}
else {
nameArray[i] = "_";
}
}

还有其他一些变体,但都不起作用。

最佳答案

您可以链接 replace()split() 将所有非空白字符替换为下划线,然后将名字和姓氏之间的空格替换为破折号。

var names = ["John Smith", "Joe Doe", "Ian Nobody", "James Black"];

var result = names.map(name => name.replace(/[^\s\\]/g, '_').split(' ').join('-'));
console.log(result);

如果您想将下划线隔开,可以将另外两个方法链接到此:

  1. replace() 每个下划线都带有下划线和空格
  2. slice() - 删除最后一个空格

var names = ["John Smith", "Joe Doe", "Ian Nobody", "James Black"];

var result = names.map(name => name.replace(/[^\s\\]/g, '_').split(' ').join('- ').replace(/[\_]/g, '_ ').slice(0, -1));
console.log(result);

关于javascript将字符串中的空格转换为符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45702536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com