Javascript 用一个连字符替换单词之间的连续空格
这个问题来自freecodecamp 填写Javascript 用一个连字符替换单词之间的连续空格,javascript,regex,Javascript,Regex,这个问题来自freecodecamp 填写urlslag函数,使其转换字符串title,并返回URL的连字符版本。您可以使用本节介绍的任何方法,但不要使用replace。以下是要求: 输入是一个带有空格和标题大小写单词的字符串 输出是一个字符串,单词之间的空格替换为 连字符(-) 输出应为所有小写字母 输出不应该有任何空格 现在我还无法解决如何从输出中去掉多余的连字符 我不应该使用replace您可以使用trim()和一个简单的正则表达式轻松完成此操作: var globalTitle=“冬天
urlslag
函数,使其转换字符串title
,并返回URL的连字符版本。您可以使用本节介绍的任何方法,但不要使用replace
。以下是要求:
输入是一个带有空格和标题大小写单词的字符串
输出是一个字符串,单词之间的空格替换为
连字符(-
)
输出应为所有小写字母
输出不应该有任何空格
现在我还无法解决如何从输出中去掉多余的连字符
我不应该使用replace
您可以使用trim()
和一个简单的正则表达式轻松完成此操作:
var globalTitle=“冬天即将来临”;
var slug=globalTitle.trim();
控制台日志(slug)代码>您可以使用trim()
和一个简单的正则表达式轻松地完成此操作:
var globalTitle=“冬天即将来临”;
var slug=globalTitle.trim();
控制台日志(slug)代码>我一直在研究它,到现在为止,还没有看到答案。
但我是这样解决的。可能效率低下
// the global variable
var globalTitle = "Winter Is Coming";
function urlSlug(title) {
let toArr = title.split("");
let newArr = toArr.map(a=> {
if(a==" "){
a= "-";
}
return a.toLowerCase();
} );
if(newArr[0] == "-"){
newArr.splice(0,1);
}
for(let i=0;i<newArr.length;i++){
if(newArr[i-1]=="-"&& newArr[i]=="-")
{
newArr.splice(i,1,"");
}
}
let finalArr = newArr.join("");
return finalArr;
}
var winterComing = urlSlug(globalTitle); // Should be "winter-is-coming"
console.log(urlSlug(globalTitle));
//全局变量
var globalTitle=“冬天来了”;
函数urlSlug(标题){
让toArr=title.split(“”);
让newArr=toArr.map(a=>{
如果(a==“”){
a=“-”;
}
返回a.toLowerCase();
} );
如果(newArr[0]=“-”){
新角拼接(0,1);
}
因为(让i=0;i我一直在研究它,还没有看到答案。
但我是这样解决的,可能效率不高
// the global variable
var globalTitle = "Winter Is Coming";
function urlSlug(title) {
let toArr = title.split("");
let newArr = toArr.map(a=> {
if(a==" "){
a= "-";
}
return a.toLowerCase();
} );
if(newArr[0] == "-"){
newArr.splice(0,1);
}
for(let i=0;i<newArr.length;i++){
if(newArr[i-1]=="-"&& newArr[i]=="-")
{
newArr.splice(i,1,"");
}
}
let finalArr = newArr.join("");
return finalArr;
}
var winterComing = urlSlug(globalTitle); // Should be "winter-is-coming"
console.log(urlSlug(globalTitle));
//全局变量
var globalTitle=“冬天来了”;
函数urlSlug(标题){
让toArr=title.split(“”);
让newArr=toArr.map(a=>{
如果(a==“”){
a=“-”;
}
返回a.toLowerCase();
} );
如果(newArr[0]=“-”){
新角拼接(0,1);
}
对于(设i=0;i另一个选项是继续您的split()
想法,然后使用将数组的元素减少为单个输出:
var globalTitle=“冬天来了”;
函数urlSlug(标题){
let split=标题。拆分(“”);
返回拆分。减少((累加器、当前值、索引)=>{
如果(currentValue.length>0){
累加器+=currentValue.toLowerCase();
累加器+=(索引 console.log(urlslaug(globalTitle));
另一个选项是继续您的split()
思想,然后使用将数组元素减少为单个输出:
var globalTitle=“冬天来了”;
函数urlSlug(标题){
let split=标题。拆分(“”);
返回拆分。减少((累加器、当前值、索引)=>{
如果(currentValue.length>0){
累加器+=currentValue.toLowerCase();
累加器+=(索引