0
var patt = path.match(/P[0-9][0-9][0-9]/);
patt = patt.substr(1);  //Remove P

while(patt.charAt(0) === '0') {   //Remove 0
    patt = patt.substr(1);
}

alert(patt);

patt固定为这种格式:例如。P001P999

我想做的是非常基本的,只需删除P和领先的0(如果有的话)。但是,上面的代码不起作用。感谢您的帮助

4

4 回答 4

11

请像这样使用它:

var str = patt.join('');
str = str.replace(/P0*/, '');

于 2012-12-19T10:16:19.663 回答
1

如果保证此函数的输入有效(即 P001...P999 的形式),那么您可以简单地使用以下方法提取整数:

parseInt(path.substr(1), 10)
于 2012-12-19T10:15:50.477 回答
1

parseInt这似乎是全局函数的完美用例。

parseInt(patt.substr(1), 10);

它将您要解析的字符串和基数作为输入。基数是可选的,但大多数人建议始终明确设置基数以避免在某些极端情况下可能发生的意外。

一旦遇到非数值(不包括空格),它就会停止解析字符串。出于这个原因,在上面的代码片段中,我们传递了去掉第一个字符的输入字符串,正如您所提到的,它是字母“P”。

此外,ES2015 引入了一个parseInt函数,作为构造函数的静态方法Number

于 2012-12-19T10:16:31.867 回答
0

只需一行,你就得到你想要的

var path = "P001"; //your code from P001 - P999

删除 P 和前导 "0" 的解决方案。

parseInt(path.substr(1), 10);

谢谢并恭祝安康

于 2012-12-19T11:12:50.593 回答