Javascript拆分字符串并删除前导0

Javascript拆分字符串并删除前导0,javascript,split,Javascript,Split,我对jquery非常陌生……我如何拆分这样的字符串: readybuilt-ANT-133.pdf readybuilt-VIC-041.pdf 所以我只得到133和41两个数字 这就是我迄今为止所尝试的 var str = this.home_pdf; var res = str.split("-"); var lotNumber = res[2].split("."); lotNumber = lotNumber[0];

我对jquery非常陌生……我如何拆分这样的字符串:

readybuilt-ANT-133.pdf
readybuilt-VIC-041.pdf
所以我只得到133和41两个数字

这就是我迄今为止所尝试的

var str = this.home_pdf;
          var res = str.split("-");
          var lotNumber = res[2].split(".");
          lotNumber = lotNumber[0];
          console.log(lotNumber);

这很有效,但如何删除前导0

假设
this.home\u pdf
包含字符串,则应执行以下操作:

var str = this.home_pdf;
str=parseInt(str.replace(/\D/g,''));
if(str.match(/^0/g)){
    str=parseInt(str.replace(/0/,''));
    }

假设
this.home\u pdf
包含该字符串,则应执行以下操作:

var str = this.home_pdf;
str=parseInt(str.replace(/\D/g,''));
if(str.match(/^0/g)){
    str=parseInt(str.replace(/0/,''));
    }
试试
(lotNumber,10)
。当给定适当的基数参数时,它将不关心前导零

附言:很明显,正则表达式是这里的发展方向。

更好的方法是使用Bergi的方法

var str = "readybuilt-VIC-041.pdf";
var lotNumber = str.split(/\.|-0*/)[2];
console.log( lotNumber );
试试
(lotNumber,10)
。当给定适当的基数参数时,它将不关心前导零

附言:很明显,正则表达式是这里的发展方向。

更好的方法是使用Bergi的方法

var str = "readybuilt-VIC-041.pdf";
var lotNumber = str.split(/\.|-0*/)[2];
console.log( lotNumber );

将变量解析为整数:

lotNumber = lotNumber[0];
lotNumber = parseInt(lotNumber,10);
console.log(lotNumber);

将变量解析为整数:

lotNumber = lotNumber[0];
lotNumber = parseInt(lotNumber,10);
console.log(lotNumber);

另一种解决方案是使用
match()


另一种解决方案是使用
match()


这个问题中的
jQuery
是关于什么的?重新标记。看起来正则表达式可能更合理
str.match(/([1-9]+\d*)\.pdf$/)
str.split(/\.\124;-0*/)[2]
+str.split('.).shift().split('-').pop()
jQuery关于这个问题的内容是什么?重新标记。看起来正则表达式可能更合理
str.match(/([1-9]+\d*)\.pdf$/)
str.split(/\.\124;-0*/)[2]
+str.split('.).shift().split('-').pop()
确保将基数参数传递给
parseInt
,以确保在执行
parseInt
时的安全性,您将不再需要执行正则表达式替换,因为int的字符串表示形式将没有前导零。@SomeGuy:不。这就是我们删除前导零的原因:-)在某些罕见的情况下,它会导致问题!相信我,我已经面对过了@Bergi是的,我不打算发布它,但我认为最好是安全的,以防输入中的其他内容发生变化。确保将基数参数传递给
parseInt
,如果执行
parseInt
,就是为了安全,您将不再需要执行正则表达式替换,因为int的字符串表示形式将没有前导零。@SomeGuy:不。这就是我们删除前导零的原因:-)在某些罕见的情况下,它会导致问题!相信我,我已经面对过了@Bergi是的,我不打算发布它,但我认为最好是安全的,以防输入中的其他内容发生变化(“readybuilt-VIC-041.pdf.”替换(/[^0-9]/g),10);parseInt('readybuilt-VIC-041.pdf'。替换(/[^0-9]/g',),10);