簡體   English   中英

使用帶有替換的模板文字

[英]Using template literal with replace

如何用模板文字替換某些內容? 我試圖傳遞一個我想替換的字符-在這種情況下,我試圖用空字符串替換一個特定的字符。

function replace(romanNumeral, replace) {
  var newStr = romanNumeral.replace(/${replace}/g, '')
  console.log(newStr);
}

簡短的答案是:

var world = "World";
var myString = "Hello World!";
myString.replace(new RegExp(`Hello ${world}`), "Hello Earth");

// Outputs "Hello Earth!"

如果您要搜索的字符串的內容來自用戶輸入,則可能需要先對其進行轉義,因此用戶無法插入特殊的RegExp字符並以您意想不到的方式操作正則表達式。

// Escape special RegExp characters
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}

var world = "World";
world = escapeRegExp(world);
var myString = "Hello World!";
myString.replace(new RegExp(`Hello ${world}`), "Hello Earth");

// Outputs "Hello Earth!"

 function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string } function replace(romanNumeral, replace) { var newStr = romanNumeral.replace(new RegExp(escapeRegExp(replace), 'g'), '') console.log(newStr); } replace("15551", 5) 

暫無
暫無

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

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