假设我有一个内容为ABC-123
的字符串。如何使用d3.js库提取字符串的数字部分(123
(?
以下是我当前尝试使用parseInt
函数的部分代码。注意,对于本例,ABC-123
存在于名为Region
的列中:
Promise.all([
d3.csv("abc-data.csv")])
.then(function(data){
data[0].forEach(function(d){
d.Region= parseInt(d.Region);
});
我错过了什么?如果有帮助的话,我会使用d3.js.v5。提前感谢您的任何建议。
在解析字符串之前,您可以使用Regex只保留字符串中的数字:
var d = { Region: "ABC-123" };
console.log( parseInt(d.Region.replace(/[^d]/g, ''), 10) ); // 123 (Number)
如果ID可以包含字母,则可以在-
上split
,并使用pop
:只保留最后一部分
var d = { Region: "ABC-XYZ-01230Z" };
console.log( d.Region.split('-').pop() ); // "01230Z" (String)
如果你想去掉前导零,你可以在上面应用replace
:
var d = { Region: "ABC-XYZ-01230Z" };
console.log( d.Region.split('-').pop().replace(/^0+/, '') ); // "1230Z" (String)