var myAtoi = function(s) {
s=s.replace(/^\s*/,'')
if(s.length===0) return 0;
if(s.length===1) return isNaN(s)?0:parseInt(s);
s=s.split('');
let numSize=false;
if(s[0]==='-') {
numSize=false;
s.shift();
}else{
numSize=true;
if(s[0]==='+') {
s.shift();
}
}
if(isNaN(s[0])||s.length===0) return 0;
let str="";
for(let i=0;i<s.length;i++){
if(i>=s.findIndex(item=>item>0)){
if(parseInt(str+s[i])>Math.pow(2,31)-1&&numSize) return Math.pow(2,31)-1;
if(parseInt('-'+str+s[i])<Math.pow(-2,31)&&!numSize) return Math.pow(-2,31);
str+=s[i];
}else{
if(!/^[0-9]+.?[0-9]*/.test(s[i])) return 0;
}
}
return numSize?parseInt(str):parseInt('-'+str);
};
其他博主资源:http://t.csdn.cn/F6UQR
<script>
var myAtoi = function(s) {
s=s.replace(/^\s*/,'');
if(["+","-"].includes(s[0])||!isNaN(+s[0])){
for(let i=1;i<s.length;i++){
if(+isNaN(s[i])||s[i]===' '){
s=s.substring(0,i);
}
}
console.log(s);
const min=Math.pow(-2,31);
const max=Math.pow(2,31)-1;
+s>max&&(s=max);
+s<min&&(s=min);
return isNaN(+s)?0:+s;
}else{
return 0;
}
};
</script>