js-match,replace-强悍
2011-11-20 15:27
246 查看
js中字符串的方法,仔细使用才发现十分强悍:
(备注:此处只谈跟正则有关的使用)
1. match
在match后:
若不匹配: 返回null
若匹配:返回数组(如果正则包含“g”,数组元素分别为匹配的字符串; 如果不包含,则返回首次匹配的子字符串,以及属性input和index)
2. replace (超级强大)
使用replace,有两个参数,第一个使用正则,第二可使用单独的字符串或者函数(如下详谈函数有关的使用)
使用函数:
第一个参数表示匹配的子字符串,第二个,第三个。。。表示跟分组有关的子字符串(没有分组,则忽略这些参数),后面还带有匹配的子字符串的下标、最后是原始字符串。
看示例:
//分别测试多个示例
function test2() {
var s1 = "javascript";
s1 = "abc123adfjk-Ljdfjk_dfa";
s1 = " this is a very good day, and it's very wanderful.";
// s1 = "张三73分,李四99分,王五59.5分,赵六19.5分。";
console.log(s1);
var s2 = s1.replace(/(java)(script)/, "$2-$1");
var s2 = s1.replace(/\W/g, "*");
var s2 = s1.replace(/(\b\w+\b)/g, f1);
// var s2 = s1.replace(/\b(\w)(\w+)\b/g, f2);
// var s2 = s1.replace(/\d+(\.\d)?/g, f3);
function f1($1) {
console.log(arguments);
return $1.charAt(0).toUpperCase() + $1.substring(1, $1.length);
}
function f2($1, $2, $3) {
// console.log($1, $2, arguments);
return $2.toUpperCase() + $3;
// console.log(arguments, f2.length);
}
function f3($1) {
}
// var s2 = s1.replace(/^[a-zA-Z]/g, "*");
console.log(s2);
}
test2();
//match和replace的综合使用
function test2_1() {
var s = "张三73分,李四99分,王五59.5分,赵六19.5分。";
var re = /\d+\.?\d*/g;
var arr = s.match(re);
var avg = 0;
for(var i = 0, n = arr.length; i < n; i++) {
avg += parseFloat(arr[i]);
}
avg /= i;
var result = s.replace(re, func);
function func($1) {
return $1 + "(平均分:" + avg + ",相差:" + (avg - parseFloat($1)) + ")";
}
console.log(arr, avg, result);
}
//test2_1();
//单独测试match方法
function test3() {
var s = "ab12cdd12_dd2fad_dfae1234 dd";
var re = /\d+/;
var arr = s.match(re);
// console.log(arr);
for(var p in arr) {
console.log("p", p, arr[p]);
}
}
//test3();
(备注:此处只谈跟正则有关的使用)
1. match
在match后:
若不匹配: 返回null
若匹配:返回数组(如果正则包含“g”,数组元素分别为匹配的字符串; 如果不包含,则返回首次匹配的子字符串,以及属性input和index)
2. replace (超级强大)
使用replace,有两个参数,第一个使用正则,第二可使用单独的字符串或者函数(如下详谈函数有关的使用)
使用函数:
第一个参数表示匹配的子字符串,第二个,第三个。。。表示跟分组有关的子字符串(没有分组,则忽略这些参数),后面还带有匹配的子字符串的下标、最后是原始字符串。
看示例:
//分别测试多个示例
function test2() {
var s1 = "javascript";
s1 = "abc123adfjk-Ljdfjk_dfa";
s1 = " this is a very good day, and it's very wanderful.";
// s1 = "张三73分,李四99分,王五59.5分,赵六19.5分。";
console.log(s1);
var s2 = s1.replace(/(java)(script)/, "$2-$1");
var s2 = s1.replace(/\W/g, "*");
var s2 = s1.replace(/(\b\w+\b)/g, f1);
// var s2 = s1.replace(/\b(\w)(\w+)\b/g, f2);
// var s2 = s1.replace(/\d+(\.\d)?/g, f3);
function f1($1) {
console.log(arguments);
return $1.charAt(0).toUpperCase() + $1.substring(1, $1.length);
}
function f2($1, $2, $3) {
// console.log($1, $2, arguments);
return $2.toUpperCase() + $3;
// console.log(arguments, f2.length);
}
function f3($1) {
}
// var s2 = s1.replace(/^[a-zA-Z]/g, "*");
console.log(s2);
}
test2();
//match和replace的综合使用
function test2_1() {
var s = "张三73分,李四99分,王五59.5分,赵六19.5分。";
var re = /\d+\.?\d*/g;
var arr = s.match(re);
var avg = 0;
for(var i = 0, n = arr.length; i < n; i++) {
avg += parseFloat(arr[i]);
}
avg /= i;
var result = s.replace(re, func);
function func($1) {
return $1 + "(平均分:" + avg + ",相差:" + (avg - parseFloat($1)) + ")";
}
console.log(arr, avg, result);
}
//test2_1();
//单独测试match方法
function test3() {
var s = "ab12cdd12_dd2fad_dfae1234 dd";
var re = /\d+/;
var arr = s.match(re);
// console.log(arr);
for(var p in arr) {
console.log("p", p, arr[p]);
}
}
//test3();
相关文章推荐
- js中match、replace方法中使用正则表达式
- js正則函數 match、exec、test、search、replace、split 使用介紹集合
- js 正则表达式 replace 和 match
- JS中exec,match,replace,test方法对比
- JS中exec,match,replace,test方法对比
- JS:1.8字符串(string)对象(length,indexOf(),lastIndexOf(),replace(),match(),toUpperCase(),toLowerCase())
- [ JS 进阶 ] test, exec, match, replace
- 全面解析JS字符串和正则表达式中的match、replace、exec等函数
- js的正则表达式 test, exec, match, replace
- JS中match、replace方法中使用正则表达式
- 字符串字符JS:1.8,字符串(string)对象(length,indexOf(),lastIndexOf(),replace(),match(),toUpperCase(),toLowerCas
- js中exec、test、match、search、replace、split用法
- JS中match、replace方法中使用正则表达式
- 本文实例讲述了js中正则的查找match()与替换replace()的用法。
- js中exec、test、match、search、replace、split用法
- js处理字符串的substr()slice()substring()match()replace()用法
- js正则表达exec、match、test和replace、replaceAll
- JS:1.8,字符串(string)对象(length,indexOf(),lastIndexOf(),replace(),match(),toUpperCase(),toLowerCase())
- js中exec、test、match、search、replace、split、indesOf()用法