问题描述
还是那个报销单项目中遇到的问题:我用数据库的存储过程将报销单明细组成了一个字符串格式的内容返回到了前台,字符串内容如下:
var str="交通费:焦作 28 郑州 共2 张发票 | 住宿费:120 郑州 共1 张发票 | 邮寄费:15 共1 张发票 | ";
前台中的显示想以 '|' 为分割符,将该字符全部替换为换行符 "<br/>"。这里就用到了javascript中的replace方法,具体使用方法如下。
replace方法总结
replace方法
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
replace方法的语法是:stringObj.replace(rgExp, replaceText)
其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),
replaceText是替代查找到的字符串。
测试的html代码
<div id="divRes"></div>
替换第一个匹配的字符
var str="交通费:焦作 28 郑州 共2 张发票 | 住宿费:120 郑州 共1 张发票 | 邮寄费:15 共1 张发票 | ", res=''; res=str.replace('|',"<br/>"); $('#divRes').append('<p>第1种结果:</p>'+res);
结果
第1种结果: 交通费:焦作 28 郑州 共2 张发票 住宿费:120 郑州 共1 张发票 | 邮寄费:15 共1 张发票 |
替换所有匹配的字符
res=str.replace(/\|/g,"<br/>"); $('#divRes').append('<p>第2种结果:</p>'+res);
结果
第2种结果: 交通费:焦作 28 郑州 共2 张发票 住宿费:120 郑州 共1 张发票 邮寄费:15 共1 张发票
正则匹配替换
var name = "Lebron, James"; res=name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"); $('#divRes').append('<p>正则匹配替换结果:</p>'+res);
结果
正则匹配替换结果: James Lebron
正则匹配替换2
str = '"a", "b"'; res=str.replace(/"([^"]*)"/g, "'$1'"); $('#divRes').append('<p>正则匹配替换结果:</p>'+res);
结果
正则匹配替换结果: 'a', 'b'
正则匹配替换函数返回结果
str = 'aaa bbb ccc'; res=str.replace(/\b\w+\b/g, function(word){ return word.substring(0,1).toUpperCase()+word.substring(1);} ); $('#divRes').append('<p>正则匹配函数替换结果:</p>'+res);
结果
正则匹配函数替换结果: Aaa Bbb Ccc
测试代码地址:
评论前必须登录!
注册