如何将字母之间的空格转换为另一个字符,如“ - ”?
解决:
对于那些有同样问题的人:
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(" ");
这将把John Smith(随机选择)转变为
_ _ _ _ - _ _ _ _ _
很好地用“空格”隔开,字母变成下划线和空格 变成破折号。这解决了“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;
}
我只能将约翰史密斯变成10行下划线,我想在最后5 {{1}之前将underscores
(名字)改为4 dash
(对于空格) }} (姓)。每个underscores
之间也是space
。对不起,我之前没有提过这件事。
我试过这个:
underscore
还有其他一些变化但没有效果。
答案 0 :(得分:2)
您可以链接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);
&#13;
如果要将下划线分隔开,可以将另外两种方法链接到此:
replace()
每个带有下划线和空格的下划线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);
&#13;
答案 1 :(得分:1)
试试这个
<script>
var names = ["John Smith", "Joe Doe", "Ian Nobody", "James Black"];
var namePicked = names[Math.floor(Math.random() * names.length)];
window.onload = function () {
var nameoutput = "";
for (var i = 0; i < namePicked.length; i++) {
if (namePicked[i] == " ") {
nameoutput += " ";
}
else {
nameoutput += "X";
}
}
document.getElementById("nameDisplay").innerHTML = nameoutput;
}
</script>
答案 2 :(得分:1)
您可以使用&#39; map&#39;方法。地图方法将按字面意思映射&#39;函数调用数组中的每个元素,因此需要使用方法split()从字符串创建数组。
var name = "John Smith";
var underscoredName = "";
name.split('').map(function(currentValue, index, nameString) {
if (currentValue != " ") {
underscoredName += "_";
} else {
underscoredName += "-";
}
});
console.log(name); // John Smith
console.log(underscoredName); // ____-_____
&#13;
答案 3 :(得分:0)
如何将字母之间的空格转换为另一个字符,如&#34; - &#34;?
嗯,你知道你想要更换什么,你知道你想要用它替换它,现在你只需要使用替换:
var new_str = old_str.replace(/ /g, "-");
RegEx / /g
表示&#34;每个空格&#34;
答案 4 :(得分:0)
您可以使用replace()
方法将所有空格转换为任何其他字符:
var replaced = test.replace(/\s/g, '-');
请注意,您必须将replace
的返回值分配给变量。
/\s/g
正则表达式选择所有空格。
以下是您如何将其应用于您的情况的示例:
var names = ["John Smith", "Joe Doe", "Ian Nobody", "James Black"];
console.log('names before: ', names);
for (var i = 0; i < names.length; i++) {
names[i] = names[i].replace(/\s/g, '-');
}
console.log('names after: ', names);
&#13;
答案 5 :(得分:0)
对于那些有同样问题的人:
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(" ");
这将把John Smith(随机选择)转变为
_ _ _ _ - _ _ _ _ _
很好地用“空格”隔开,字母变成下划线,空格变成破折号。 这解决了“javascript”方式。您也可以使用loop for。
执行此操作