[英]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.