Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的字符串操作(删除前导零和特定字符)_Javascript_Jquery_String - Fatal编程技术网

javascript中的字符串操作(删除前导零和特定字符)

javascript中的字符串操作(删除前导零和特定字符),javascript,jquery,string,Javascript,Jquery,String,patt固定为以下格式: 例如P001至P999 我想做的是非常基本的,只需删除p和前面的0(如果有)。但是,上面的代码不起作用。感谢您的帮助如果此函数的输入保证有效(即形式为P001…P999),则您只需使用以下命令即可提取整数: 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
固定为以下格式: 例如
P001
P999


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

如果此函数的输入保证有效(即形式为P001…P999),则您只需使用以下命令即可提取整数:

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);

请这样使用:

var str=patt.join(“”)
str=str.replace(/P0*/,“”)


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

parseInt(path.substr(1), 10)
它将要解析的字符串和基作为输入。 基数是可选的,但大多数人建议始终显式设置基数,以避免在某些边缘情况下可能发生的意外情况

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


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

只要一行,您就可以得到想要的

parseInt(patt.substr(1), 10);
删除p和前导“0”的解决方案


感谢并问候

如果您删除前导零,您的第一个示例中会不会以
P1
结束?您肯定会在
patt=patt.substr(1)
行中遇到异常?
String#match
的返回值是数组,而不是字符串;它没有
substr
方法。@RoryMcCrossan结果是1对于所有现代浏览器(从ECMAScript 5开始),parseInt的默认基数为10。但是,为了清晰起见,对于较旧的浏览器,编辑的答案是显式地将基数设置为10。对不起,问题是javascript将尾随0的数字解释为基数8,parseInt不是问题,您是对的,像
parseInt('084')
这样的东西仍然不起作用。
var path = "P001"; //your code from P001 - P999
parseInt(path.substr(1), 10);