修剪空格和javascript字符串

时间:2018-06-20 13:42:00

标签: javascript

我正在尝试修剪字符串中的所有空格,包括onPostExequte 我似乎无法实现这一目标。

我尝试过的示例是:

 

基本上,我希望输出仅是字符串中的var txt = '&nbsp; &nbsp; hallo<span>&nbsp;again</span> &nbsp; &nbsp &nbsp;'; txt = txt.replace(/(?:^(?:&nbsp;)+)|(?:(?:&nbsp;)+$)/ig,''); txt = txt.trim(); console.log(txt);//should only display 'hallo<span>&nbsp;again</span>'

5 个答案:

答案 0 :(得分:1)

您可以创建一个元素textarea并在其中分配值,以便对特殊字符进行解码,然后对该值使用trim()

var txt = '&nbsp;  &nbsp;  hallo<span>&nbsp;again</span> &nbsp; &nbsp &nbsp;';
var elem = document.createElement("textarea");
elem.innerHTML = txt;
var txtValue = elem.value;    
txt = txtValue.trim(); 
console.log(txt);

答案 1 :(得分:0)

您可以将&nbsp;转换为硬空格(U + 00A0),然后修剪:

var txt = '&nbsp;  &nbsp;  hallo<span>&nbsp;again</span> &nbsp; &nbsp &nbsp;';
txt = txt.replace(/&nbsp(?:;?)/ig,'\u00A0');
txt = txt.trim(); 
console.log('"' + txt + '"');//should only display 'hallo'

请注意,由于其中有&nbsp(没有;),因此我在正则表达式中将;设置为可选。

答案 2 :(得分:0)

var txt = '&nbsp;  &nbsp;  hallo &nbsp; &nbsp &nbsp;';
txt = txt.replace(/^(?:&nbsp;|\s)+|(?:&nbsp;|\s)+$/ig,'');
console.log(txt);//should only display 'hallo'

这可以解决问题,但由于输入文本包含&nbsp,后面没有分号,因此输出为"hallo &nbsp; &nbsp"

对于输入'&nbsp; &nbsp; hallo &nbsp; &nbsp; &nbsp;',输出将为hallo

答案 3 :(得分:0)

知道我迟到聚会了,这是我的贡献。

使用了Non Capturing Group "?:"并将它们全部替换为空字符串""

工作方式:

(?:&nbsp|;|\s+)

  • ?:非捕获组,不匹配组()中的所有内容
  • &nbsp|;|\s+&nbsp;
  • \s+匹配无限数量的空格。

let regex = /(?:&nbsp|;|\s+)/gm;
//let str = `&nbsp;  &nbsp;  hallo &nbsp; &nbsp &nbsp;`;
let str = `&nbsp;  &nbsp;  hallo<span>&nbsp;again</span> &nbsp; &nbsp &nbsp;`;

console.log(str.replace(regex, ""));

答案 4 :(得分:0)

if (`codec installed`)
    int codec = opencvfourcc(codec)
else
    int codec = -1