replace方法在for循环里无效?


我写了如下代码,想把data转换成汉子形式,为什么方式一会失败呢?[黑人问号脸]

//程序一:
var data='1,2,3';
var arr=['一','二','三'];
for(var i in arr){
    data=data.replace(i+1,arr[i]);
    console.log(i,arr[i]);
}
console.log(data);
结果:
0 一
1 二
2 三
0,1,2

//程序二:
data.replace(1,'一').replace(2,'二').replace(3,'三');
结果:
一,二,三

for(var i in arr) 这里面的 i 是字符串,你需要把它变为数值型,所以可以这样:

data=data.replace((+i+1),arr[i]);


var data='1,2,3';
var arr=['一','二','三'];
for(var i in arr){
    data=data.replace(Number(i)+1,arr[i]);
    console.log(i,arr[i]);
}
console.log(data);

用parseInt会有坑的

parseInt(string, 10) // 后面指定10进制

例如在解析

parseInt(010)    // 这种情况返回的结果不定 10 或 8

i+1结果是字符串型的,结果依次是01,11,21


数字转中文数字方法如下:

var number = 52658746;
var N = [
    "零", "一", "二", "三", "四", "五", "六", "七", "八", "九"
];
function toChineseNum(num){
    var str = num.toString();
    var len = num.toString().length;
    var C_Num = [];
    for(var i = 0; i < len; i++){
        C_Num.push(N[str.charAt(i)]);
    }
    return C_Num.join('');
}
 
var chinese = toChineseNum(number);
alert(chinese);

var data='1,2,3';
var arr=['一','二','三'];
for(var i in arr){

data=data.replace(parseInt(i)+1,arr[i]);
console.log(i);

}
console.log(data);



相关阅读:
用JS求:输入某年某月某日,问是全年的第几天?
在chrome54中border的宽度与设置不符?
python爬取网页的时候,某些字符丢失
n个随机数 和是固定的 js如何实现?
关于使用java语言实现七牛云分片上传
php-fpm出现exited on signal 11 (SIGSEGV)?
netty 的 Server 启动成功事件是哪个?
关于angular2 中控件验证的复用
Golang如何阻止signal传递给os/exec执行的命令
the value for the useBean class attribute xxx is invalid
android中webview无网络时怎么实现点击加载?
tsconfig如何配置多个输出目录?
Reactjs 0.13是否没有过滤XSS攻击 ?
如何删除或修改 Git Credential Manager (GCM)缓存的账号和密码
请问如何解决windows环境下phantomjs不支持flash的问题?
react单页面应用中,点击浏览器回退按钮,怎么能使回来的页面保持离开前的状态?
前端测试(UI Recorder)webdriver启动firefox报错
百度坐标批量转换后画直线的问题
关于vuex的疑惑
微信内置浏览器跳转session丢失问题



快速导航

Copyright © 2016 phpStudy |