- 浏览: 51452 次
- 性别:
- 来自: 深圳
from
http://www.cnblogs.com/mxw09/archive/2010/08/12/1797905.html
replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。
下文展示了几种javascript正则表示式的repalce方式,有些方式我们很少在别的地方看到,如第二种和第三方中方法。
//下面的例子用来获取url的两个参数,并返回urlRewrite之前的真实Url
//方式一,最简单常用的方式
//方式二 ,采用固定参数的回调函数
//方式三,采用非固定参数的回调函数
//方法四
//方式四和方法三很类似, 除了返回替换后的字符串外,还可以单独获取参数
//除了使用replace方法获取正则表示式的分组外,还可以使用test ,exec方法获取分组,只是手法有所不同而已
//获取所有的分组
//使用test方法获取分组
exercise
http://hi.baidu.com/%B7%E7%D4%C6%D0%F9%BA%A3/blog/item/6a275c119f8d3a0f5aaf539e.html
<script language="javascript">
</script>
我这儿举的例子都是很简单的应用,replace()在此点上与您使用正则表达式的能力成正比。您正则表达式越强,呵呵,那您就会越疯狂的爱上它。
当然,我这儿推荐replace()的原因并不因为它能与正则表达式合作,而在于它还能与函数进行合作,发挥出强大的功能。
先看看简单例子:将所有单词首字母换成大写。
<script language="javascript">
</script>
由上可知,当正则表达式有"g"标志时,代表将处理整个字符串,即函数change的变换将应用于所有匹配的对象。而该函数有三个或更多参数,具体个数视正则表达式而定。
有了函数与正则表达式的配合,replace()处理字符串的功能空前强大起来了!
最后还举个例子,将字符串所有单词倒序,用replace()处理是如此简单。
<script language="javascript">
</script>
http://www.cnblogs.com/mxw09/archive/2010/08/12/1797905.html
replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。
下文展示了几种javascript正则表示式的repalce方式,有些方式我们很少在别的地方看到,如第二种和第三方中方法。
//下面的例子用来获取url的两个参数,并返回urlRewrite之前的真实Url
var reg=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi"); var url="http://www.qidian.com/BookReader/1017141,20361055.aspx";
//方式一,最简单常用的方式
var rep=url.replace(reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3"); alert(rep);
//方式二 ,采用固定参数的回调函数
var rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3}); alert(rep2);
//方式三,采用非固定参数的回调函数
var rep3=url.replace(reg,function(){var args=arguments; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3];}); alert(rep3);
//方法四
//方式四和方法三很类似, 除了返回替换后的字符串外,还可以单独获取参数
var bookId; var chapterId; function capText() { var args=arguments; bookId=args[2]; chapterId=args[3]; return args[1]+"ShowBook.aspx?bookId="+args[2]+"&chapterId="+args[3]; } var rep4=url.replace(reg,capText); alert(rep4); alert(bookId); alert(chapterId);
//除了使用replace方法获取正则表示式的分组外,还可以使用test ,exec方法获取分组,只是手法有所不同而已
var reg2=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi"); var m=reg2.exec("http://www.qidian.com/BookReader/1017141,20361055.aspx"); var s="";
//获取所有的分组
for (i = 0; i < m.length; i++) { s = s + m[i] + "\n"; } alert(s); bookId=m[2]; chapterId=m[3]; alert(bookId); alert(chapterId);
//使用test方法获取分组
var reg3=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi"); reg3.test("http://www.qidian.com/BookReader/1017141,20361055.aspx"); //获取三个分组 alert(RegExp.$1); alert(RegExp.$2); alert(RegExp.$3);
exercise
http://hi.baidu.com/%B7%E7%D4%C6%D0%F9%BA%A3/blog/item/6a275c119f8d3a0f5aaf539e.html
<script language="javascript">
var strM = "javascript is a good script language"; alert(strM.replace(/(javascript)\s*(is)/g,"$1 $2 fun. it $2"));
</script>
我这儿举的例子都是很简单的应用,replace()在此点上与您使用正则表达式的能力成正比。您正则表达式越强,呵呵,那您就会越疯狂的爱上它。
当然,我这儿推荐replace()的原因并不因为它能与正则表达式合作,而在于它还能与函数进行合作,发挥出强大的功能。
先看看简单例子:将所有单词首字母换成大写。
<script language="javascript">
var strM = "javascript is a good script language"; function change(word) { return word.indexOf(0).toUpperCase()+word.substring(1); } alert(strM.replace(/\b\w+\b/g,change));
</script>
由上可知,当正则表达式有"g"标志时,代表将处理整个字符串,即函数change的变换将应用于所有匹配的对象。而该函数有三个或更多参数,具体个数视正则表达式而定。
有了函数与正则表达式的配合,replace()处理字符串的功能空前强大起来了!
最后还举个例子,将字符串所有单词倒序,用replace()处理是如此简单。
<script language="javascript">
var strM = "javascript is a good script language"; function change(word) { var result = word.match(/(\w)/g); if ( result ) { var str = ""; for ( var i=result.length-1; i>=0; i-- ) { str += result; } return str; } else { return "null"; } } alert(strM.replace(/\b(\w)+\b/g,change));
</script>
发表评论
-
要写出在各大主流浏览器上都兼容的JS代码,就要关注他们的区别,下是IE和FF综合考虑的通用DOM!
2011-08-04 14:36 896来源于 http://hi.baidu.com/g ... -
<input type="text" id="start" />输入true取布尔true
2011-07-28 14:22 834"true" and true is di ... -
Js获取当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天
2011-07-27 17:47 4717字符串转日期型+Js当前日期时间+日期验证+判断闰年+日期的天 ... -
高效http页面优化法则一【JS对DOM的操作】
2011-07-08 10:58 996很多人都认为JS的效率 ... -
form page jump
2011-07-07 10:49 826页面跳转 <input type="hidd ... -
jquery widget sample
2011-07-06 08:39 3410<!DOCTYPE html PUBLIC &quo ... -
jquery apply wait for update
2011-07-05 10:36 1623<!DOCTYPE html PUBLIC &quo ... -
deal with a great quantity domelements add event wait for update
2011-06-29 14:34 1120<!DOCTYPE html PUBLIC " ... -
JS中的attachEvent、addEventListener如何传递参数
2011-06-29 14:02 6243<!DOCTYPE html PUBLIC " ... -
window.onload 和 $(document).ready 区别 待续......
2011-06-27 09:50 2718jquery 学习之一(js中window ... -
js operate frame
2011-06-14 14:04 1167我的页面框架如下 <frameset rows=&quo ... -
js中frame的调用
2011-06-14 12:27 1016js中frame的调用 关键词 ... -
js 事件冒泡 和其它问题
2011-06-10 09:25 779js事件冒泡 <html> <head> ... -
js inner iframe get dom of parent
2011-06-02 15:00 702parent.$("#id");//jqu ... -
ajax
2011-05-27 14:18 611<!DOCTYPE html PUBLIC " ... -
add event to all the dom elements in one page except one dom
2011-05-18 10:20 841<!DOCTYPE html PUBLIC &quo ... -
count down 倒计时
2011-05-13 12:42 550<!DOCTYPE html PUBLIC " ... -
js IE与FireFox的兼容性问题 事件
2011-05-13 09:16 987# window.event * IE:有windo ... -
deal with href remove the same element
2011-05-11 09:38 771var url="http://zhidao.bai ... -
document.form.item 问题集合的(0)和[0]取法
2011-05-09 15:10 1894<!DOCTYPE html PUBLIC " ...
相关推荐
当我们在文本框里输入文字敲下回车后,希望在提交后网页也显示是换行的效果,这时我们需要把... } 2、使用js的replace进行处理 代码如下: str=str.replaceAll(“\n”, “ ”) 这样就可以做到js回车换行的效果了!
js中string之正则表达式replace方法详解.docx
js里replace方法.docxjs里replace方法.docx
js里replace方法.pdfjs里replace方法.pdf
replace方法是javascript涉及到正则表达式中较为复杂的一个方法,严格上说应该是string对象的方法。只不过牵扯到正则的时候比较多一些。需要我们灵活的使用。 语法: stringObj.replace(regexp/substr,replacement)...
JavaScript replace 方法 replace 方法用于在字符串中用一些字符串替换另一些字符串,或者替换符合正则匹配的字符串,并返回替换后的字符串。其语法如下: 代码如下: str_object.replace(reg_exp/str, replacement)...
js中replace的详细用法,包括基本用法、函数用法
js中的replace方法使用介绍.docx
replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。。为了帮助大家更好的...
javascript正则表达式中的replace方法详解.docx
replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数 是与模式中的子表达式...
JavaScript 中的replace方法说明
主要介绍了javascript的replace方法结合正则使用技巧,实例总结了replace方法配合正则表达式进行变量、分组、字符等替换技巧,需要的朋友可以参考下
示例代码如下: [removed] var strM = “javascript is a good script language”; //在此我想将字母a替换成字母A alert(strM.replace(“a”,”A”)); [removed] 我想大家运行后可以看到结果,它只替换了首...
最近查一个bug,原因是JS中的Replace方法造成的,当将一个字符串中有处需要替换时,一般会用到JS中的Replace方法,Replace方法的第一个参数如果是传的字符串,只会替换第一处。代码如下: 代码如下: var str = “0...
主要介绍了js replace替换字符串同时替换多个方法 的相关资料,需要的朋友可以参考下
主要介绍了使用JS中的Replace()方法遇到的问题小结,需要的朋友可以参考下
详解JS正则replace的用法方法_.docx