修剪空白和&;nbsp;来自javascript字符串
我正在尝试修剪字符串中的所有空白,包括修剪空白和&;nbsp;来自javascript字符串,javascript,Javascript,我正在尝试修剪字符串中的所有空白,包括 我似乎无法做到这一点 我试过的例子是: var txt = ' hallo<span> again</span>   '; txt = txt.replace(/(?:^(?: )+)|(?:(?: )+$)/ig,''); txt = txt.trim(); console
我似乎无法做到这一点
我试过的例子是:
var txt = ' hallo<span> again</span>   ';
txt = txt.replace(/(?:^(?: )+)|(?:(?: )+$)/ig,'');
txt = txt.trim();
console.log(txt);//should only display 'hallo<span> again</span>'
var txt='hallo reach ';
txt=txt.replace(/(?:^(?)+)|(?:(?:)+$)/ig,);
txt=txt.trim();
console.log(txt)//应该只显示“再见”
基本上,我只希望字符串的输出再次是
hallo
。您可以将
转换为硬空格(U+00A0),然后修剪:
var txt='hallo reach ';
txt=txt。替换(/nbsp(?;?)/ig,“\u00A0”);
txt=txt.trim();
log(““+txt+”)//应该只显示“hallo”
您可以创建一个元素,比如说,textarea
并在那里赋值,以便对特殊字符进行解码,然后对该值使用trim()
:
var txt='hallo reach ';
var elem=document.createElement(“textarea”);
elem.innerHTML=txt;
var txtValue=元素值;
txt=txtValue.trim();
console.log(txt)代码>
这样就可以了,但是由于输入文本后面包含一个没有分号的
,因此输出是“你好”
对于输入'hallo'
来说,输出将是hallo
知道我来晚了,下面是我的贡献
使用了,并将它们全部替换为空字符串“”
工作原理:
(?:| |\s+)
?:
非捕获组,不匹配组中的所有内容()
||\s+
,或代码>或
\s+
匹配无限数量的空白
let regex=/(?:| | |\s+)/gm;
//让str=`hallo `;
让str=`hallo再次`;
console.log(str.replace(regex)(“”)代码>你好,谢谢你的评论;我在编辑我的原创文章,所以要说得更清楚一点。我很抱歉,这些重叠了。基本上我不想要一个完整的搜索/replace@user2022678-这就是上面的代码所做的,尽管使用了硬空间字符(U+00A0)而不是命名字符实体。但是命名实体只是编码硬字符,所以…嗨;谢谢你的意见。是否有办法在标签中保留标签?它似乎变成了白色PCAE(我使用FF进行测试)@T.J.Crowder哦,是的。我的错。没有jQuery。@user2022678很乐意帮忙我注意到span中的“”实际上已转换为空白。有没有办法保存这些信息?虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。谢谢,我将尽我最大的努力。
var txt = ' hallo   ';
txt = txt.replace(/^(?: |\s)+|(?: |\s)+$/ig,'');
console.log(txt);//should only display 'hallo'
var txt = ' hallo ';
var reg = new RegExp(" ", "g"); // By RegExp constructor creating regular expression object for matching text with a pattern. and "g" is used from global i.e. apply on every match.
var result = txt.replace(reg, " ");
console.log(result.trim());
//2nd Method
var txt = ' hallo ';
var reg = new RegExp("[ |' ']", "g");
var result = txt.replace(reg, "");
console.log(result);