把字符串转化成整数
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
代码
function StrToInt(str)
{
// write code here
if(str.length === 0){
return 0;
}
var format = str.match(/^(\+?|-?)(\d+)$/);
if(!format){
return 0;
}
var num = 0;
var temp = format[2];
var base = 1;
var flag = format[1];
for(var i =temp.length-1;i>=0;i--){
num += parseInt(temp[i]*base);
base *= 10;
}
return flag === '-'?num*(-1):num;
}
//第二种
function StrToInt(str) {
let res = 0,
flag = 1;
const n = str.length;
if (!n) return 0;
if (str[0] === '-') {
flag = -1;
}
for (let i = str[0] === '+' || str[0] === '-' ? 1 : 0; i < n; i++) {
if (!(str[i] >= '0' && str[i] <= '9')) return 0;
res = (res << 1) + (res << 3) + (str[i] - '0');
}
return res * flag;
}