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