簡體   English   中英

如何轉義字符串中的所有特殊字符?

[英]How to escape all special characters in a string?

我正在使用D3庫。 我想以編程方式通過其ID選擇一個元素,但是該ID包含一個逗號。 我正在讀取ID作為數據的一部分,所以我無法控制它。

我的代碼是:

g.nodes().forEach(function(v) {
   d3.select('#'+v+)
   .attr("cx", function(){return g.node(v).x; })
   .attr("cy", function(){return g.node(v).y; })
});

其中v是與ID匹配的字符串。

具體來說,當我嘗試d3.select("#B_ne_,3")我得到d3.js:562 Uncaught DOMException: Failed to execute 'querySelector' on 'Document': '#B_ne_,3' is not a valid selector.(…)

我知道我可以通過使用"#B_ne_\\\\,3" ,但是通常如何才能轉義這些字符?

我不使用jQuery。

使用CSS.escape (截至2017年5月為實驗性):

 var v = "B_ne_,3"; console.log("#" + CSS.escape(v)); 

有適用於舊瀏覽器的精確polyfill,但是如果轉義不必要的字符,則更簡單:

 var v = "B_ne_,3"; console.log("#" + v.replace(/\\W/g, '\\\\$&').replace(/^\\d/, '\\\\00003$&')); 

暫無
暫無

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

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