簡體   English   中英

JS用子字符串修剪字符串

[英]Js trim string with substring

我有這樣的字符串:

var test = 'vv<br>cfvxcv<br>&nbsp;<br>vv xcv x<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>';

需要從最后刪除所有&nbsp;<br> 結果必須為: vv<br>cfvxcv<br>&nbsp;<br>vv xcv x

我試過了:

test = test.replace(/^\&nbsp;<br>+|\&nbsp;<br>+$/g, '');

但這是行不通的。

const trimS = (str, delimiter) => {
  const pattern = `[^\\${delimiter}]`;
  // const start = str.search(pattern); // trim both sides
  const start = 0; // trim only right side of string
  const stop = str.length - str.split('').reverse().join('').search(pattern);
  return str.substring(start, stop);
};

const test = 'vv<br>cfvxcv<br>&nbsp;<br>vv xcv x<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>';
console.log(trimS(test, '&nbsp;<br>'));

^字符表示行的開始-您不需要此行。 但是+僅適用於其前面的字符,因此您需要對它們進行分組才能使+應用於該組,從而得到:

 var test = 'vv<br>cfvxcv<br>&nbsp;<br>vv xcv x<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>'; test = test.replace(/(\\&nbsp;<br>)+$/g, ''); console.log(test, test == "vv<br>cfvxcv<br>&nbsp;<br>vv xcv x") 

這不能引用工作,因為您的要求

從最后刪除&nbsp;<br>

應該

刪除所有&nbsp; <br>從頭開始

給予:

  var test = 'vv<br>cfvxcv<br>&nbsp;<br>vv xcv x<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>'; test = test.replace(/((\\&nbsp;)|(<br>))+$/g, ''); console.log(test, test == "vv<br>cfvxcv<br>&nbsp;<br>vv xcv x") 

子字符串返回字符串的開始和結束索引之間的字符串。

有關更多參考: https : //developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Global_Objects/String/substring

 test = test.substring(0, 34)

輸出: 'vv<br>cfvxcv<br>&nbsp;<br>vv xcv x'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM