﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-BloveSaga-随笔分类-Java Scripting Study</title><link>http://www.blogjava.net/blovesaga/category/11859.html</link><description>在希腊帕尔纳斯山南坡上,有一个驰名世界的戴尔波伊神托所,在它的入口处的巨石上赫然锈刻着这样几个大字: 认识你自己!</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:25:51 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:25:51 GMT</pubDate><ttl>60</ttl><item><title>正则表达式之---基础学习</title><link>http://www.blogjava.net/blovesaga/archive/2006/06/15/53051.html</link><dc:creator>blovesaga</dc:creator><author>blovesaga</author><pubDate>Thu, 15 Jun 2006 10:06:00 GMT</pubDate><guid>http://www.blogjava.net/blovesaga/archive/2006/06/15/53051.html</guid><wfw:comment>http://www.blogjava.net/blovesaga/comments/53051.html</wfw:comment><comments>http://www.blogjava.net/blovesaga/archive/2006/06/15/53051.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blovesaga/comments/commentRss/53051.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blovesaga/services/trackbacks/53051.html</trackback:ping><description><![CDATA[
		<p>   正则表达式</p>
		<p> .正则表达式及其作用<br /> .RegExp对象<br /> .String对象中与正则表达式有关的方法<br /> .正则表达式的语法参考<br /> .实用程序举例</p>
		<p> 什么是正则表达式?<br /> .文件路径通配符<br /> "?"通配符匹配文件名中的单个字符，而"'"通配符匹配零个或多个字符。data?.dat就是一中文<br /> 本模式，它能匹配data1.dat,data2.dat,datax.dat,dataN.dat等文件名。data*.dat是另一种文<br /> 本模式，它匹配data.dat,data1.dat,data2.dat,data12.dat,datax.dat等文件名。</p>
		<p> </p>
		<p> .正则表达式<br /> 是由英文词语regular expression翻译过来的，英文比中文更能实现其含义，就是符合某种规则<br /> 的表达式。可以将正则表达式理解为一种对文件进行模糊匹配的语言，它用一些特殊的符号（称<br /> 为元字符）来代表某种特征（例如，全都是数字）的一组字符以及指定匹配的次数，含有元字符<br /> 的文本不再表示某一具体的文本内容，而是形成了一种文本模式，它可以匹配符合这种模式的所<br /> 有文本串。<br /> <br /> 元字符与子匹配<br /> .元字符<br /> 如果一个图书的编号格式是:要么是5个数字字符，例如,10101;要么是5个数字后加上一个连字号<br /> (-)，再加上4个数字组成的10个字符，例如，11111-1234。那么，要在一个大的文本串中查找这<br /> 两种格式的图书编号时，就可以用\d{5}(-\d{4})?做为匹配模式。<br /> 如果要让abc?中的bc同时受到?的作用，必须使用圆括号将他们括起来，使它们成为一个紧密结合<br /> 的组合项，这样后面的?就表示圆括号中的内容可有可无，例如,a(bc)?能匹配a和abc。</p>
		<p> .字匹配<br /> 圆口号所括起来的部分为一个子匹配（也叫子表达式），除了可以得到整个正则表达式的匹配<br /> 结果外，还可以单独得到每个子表达式部分所匹配的结果。<br /> 多个子表达式所匹配的原始内容按照它们正则表达式模式中从左到右出现的顺序存储在缓冲区中<br /> ，这种过程称为捕获。圆括号中的子匹配所捕获的内容可在整个表达式中位于这个括号之后的<br /> 地方被反引用，第一括号（即第一个子匹配）捕获的内容用\1表示，第二个圆括号（即第二个子<br /> 匹配）捕获的内容\2表示，依次类推。例如，要匹配2个相同的连续字符的正则表达式为(\d)\1.<br /> 要匹配连续5个相同的数字字符的正则表达式为(\d)\1{4}.要匹配1221.3553.6776等数字。可以<br /> 使用正则表达式为(\d)(\d)\2\1。</p>
		<p>  正则表达式的作用<br /> .测试字符串是否匹配某个模式，从而实现数据格式的有效性验证。<br /> .将一段文本中满足某一正则表达式模式的文本内容替换为别的内容或删除（即替换为空字符串）<br />  例如，将一大段文本中的所有的19xx年的内容替换为20xx年，其中xx部分是两个任意的数字，<br />  不会被替换，但不能简单地用20替换19，否则1919就被替换为2020。<br /> .在一段文本中搜索具有某一类型特征的文本内容。精确搜索和正则表达式的模式搜索最大的区<br />  别就是：精确搜索是搜索一个具体的文本，而模式搜索是模式搜索具有某一类型特征的文本。</p>
		<p> <br />  RegExp对象<br /> JavaScript中提供了一个名为RegExp的对象来完成有关正则表达式的操作和功能，每一条正则<br /> 表达式模式对应一个RegExp对象实例。</p>
		<p> 创建RegExp对象实例<br /> (1)使用RegExp对象的显示构造函数，语法为:new RegExp("pattern"[,"flags"]);<br /> (2)使用RegExp对象的隐式构造函数，采用纯粹的文本格式:/pattern/[flags]<br /> <br /> flags标志字符：<br />     -g 用做全局标志<br />     -i 用做忽略大小写标志<br />     -m 用做多行标志<br />     如果没有设置这个标志，那么元字符"^"只与整个被搜索字符串的开始位置相匹配，而元字符<br />     "$"只与整个被搜索字符串的结束位置相匹配。如果设置了这个标志，那么"^"还可以与被<br />     搜索字符串中的"\n"或"\r"之后的位置相匹配。<br />  注意:<br />  当使用构造函数的方式创建RegExp实例对象的时候，应将原始的正则表达式模式文本中的每个<br />  "\"都使用"\\"来替换，例如，下面的语句等价:<br />   var re=new RegExp("<a href="file://\\d{5">\\d{5</a>}");<br />   var re=^d{5}/</p>
		<p> RegExp对象-属性<br /> .所有RegExp对象实例共享静态属性<br /> .单个对象实例的属性<br /> 静态属性:<br /> .index<br /> .input<br /> .lastIndex<br /> .lastMatch<br /> .lastParen<br /> .lastContext<br /> .leftContext<br /> .rightContext <br /> .$1...$9</p>
		<p> 对象实例属性:<br /> .global<br /> .ignoreCase<br /> .multiline<br /> .source</p>
		<p> RegExp对象-方法<br /> .test方法<br /> 语法格式为:test(str)。检查一个字符串中是否存在创建RegExp对象实例所指定的正则表达式模式<br /> .exec方法<br /> 语法格式为:exec(str)。使用创建RegExp对象实例时所指定的正则表达式模式对一个字符串执行<br /> 搜索，并返回一个包含搜索结果的数组。<br /> .compile方法<br /> 语法格式为:compile("pattern"[,"flags"])。更换RegExp对象实例所使用的正则表达式模式，并<br /> 将新的正则表达式模式编译为内部格式，从而使以后的匹配过程执行更快。</p>
		<p> RegExp对象-综合举例<br /> code:<br />&lt;script language="javascript"&gt;<br />    var strSrc="xxa1b01c001yya2b02c002zz";<br />    var re="/a(\d)b(\d{2})c(\d{3})/gi";<br />    var arr,count=0;<br />    while((arr = re.exec(strSrc))!=null)<br />    {<br />       displayResult();<br />    }<br />    function displayResult()<br />    {<br />      document.write(&lt;p&gt;这是用正则表达式/"+re.source+"/gi对字符串&lt;br&gt;\""<br />                 +RegExp.input+ "\"进行第" +(++count)+ "次搜索的结果:&lt;br&gt;");<br />      document.write("RegExp.index为"+RegExp.index+"&lt;br&gt;");<br />      document.write("RegExp.lastindex为"+RegExp.lastindex+"&lt;br&gt;");<br />      document.write("RegExp.lastMatch为"+RegExp.lastMatch+"&lt;br&gt;");<br />      document.write("RegExp.lastParen为"+RegExp.lastParen+"&lt;br&gt;");<br />      document.write("RegExp.lastContext为"+RegExp.lastContext+"&lt;br&gt;");<br />      document.write("RegExp.$1为"+RegExp.$1+"&lt;br&gt;");<br />      document.write("RegExp.$1为"+RegExp.$2+"&lt;br&gt;");<br />      document.write("RegExp.$1为"+RegExp.$3+"&lt;br&gt;");<br />      document.write("RegExp.$1为"+RegExp.$4+"&lt;br&gt;");<br />      document.write("arr.index为"+arr.index+"&lt;br&gt;");<br />      document.write("arr.input为"+arr.input+"&lt;br&gt;");<br />      document.write("arr.lastindex为"+arr.lastindex+"&lt;br&gt;");<br />      document.write("返回的元素个数为"+arr.length+"&lt;br&gt;");<br />      document.write("返回数组的类容为[");<br />      for(var i=0;i&lt;arr.length;i++)<br />      {<br />         if(arr.length-1)<br />            document.write("\""+arr[i]+"\",");<br />         else<br />            document.write("\""+arr[i]+"\"]&lt;/p&gt;");<br />      }<br />      <br />    }<br /> &lt;/script&gt;<br /> </p>
		<p>
				<br /> String对象中与正则表达式有关的方法<br /> .match方法<br /> 语法格式为:match(Exp)。与RegExp对象的exec方法类似，它使用正则表达式模式对字符串执行<br /> 搜索，并返回一个包含搜索结果的数组。<br /> &lt;script language="javascript"&gt;<br />   var strSrc="xxa1b01c001yya2b02c002zz";<br />   var re=/a(\d)b(\d(2))c(\d{3})/gi;<br />   var arr;<br />   arr=strSrc.match(re);<br />   for(var i=0;i&lt;arr.length;i++)<br />   {<br />      if(i&lt;arr.length-1)<br />         document.write("[\""+arr[i]+"\",");<br />      else<br />         document.write("\""+arr[i]+"\"]");<br />   }<br /> &lt;/script&gt;<br /> <br /> .search方法<br /> 语法格式为:serach(rgExp)。返回使用正则表达式搜索时，第一个匹配的字符串在整个被搜索<br /> 的字符串中的位置。<br /> .replace方法<br /> 语法格式为: replace(rgExp,replaceText)。使用正则表达式模式对字符串执行搜索，并对搜索<br /> 到的内容用指定的字符串替换，返回值包含替换后的内容的字符串对象。</p>
<img src ="http://www.blogjava.net/blovesaga/aggbug/53051.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blovesaga/" target="_blank">blovesaga</a> 2006-06-15 18:06 <a href="http://www.blogjava.net/blovesaga/archive/2006/06/15/53051.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用的匹配正则表达式和实例</title><link>http://www.blogjava.net/blovesaga/archive/2006/06/05/50602.html</link><dc:creator>blovesaga</dc:creator><author>blovesaga</author><pubDate>Mon, 05 Jun 2006 14:40:00 GMT</pubDate><guid>http://www.blogjava.net/blovesaga/archive/2006/06/05/50602.html</guid><wfw:comment>http://www.blogjava.net/blovesaga/comments/50602.html</wfw:comment><comments>http://www.blogjava.net/blovesaga/archive/2006/06/05/50602.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blovesaga/comments/commentRss/50602.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blovesaga/services/trackbacks/50602.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">匹配中文字符的正则表达式：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> [\u4e00-\u9fa5]<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">匹配双字节字符</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">(</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">包括汉字在内</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">)</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">[^\x00-\xff]<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">应用：计算字符串的长度（一个双字节字符长度计</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">2</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">，</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">ASCII</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">字符计</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">1</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">）</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">
						<br />
						<br />String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">匹配空行的正则表达式：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">\n[\s| ]*\r<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">匹配</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">HTML</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">标记的正则表达式：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/ <br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">匹配首尾空格的正则表达式：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">(^\s*)|(\s*$)<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">应用：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">javascript</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">中没有像</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">vbscript</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">那样的</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">trim</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">函数，我们就可以利用这个表达式来实现，如下：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">
						<br />
						<br />String.prototype.trim = function()<br />{<br />return this.replace(/(^\s*)|(\s*$)/g, "");<br />}<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">利用正则表达式分解和转换</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">IP</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">地址：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">
						<br />
						<br />
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">下面是利用正则表达式匹配</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">IP</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">地址，并将</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">IP</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">地址转换成对应数值的</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">Javascript</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">程序：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">
						<br />
						<br />function IP2V(ip)<br />{<br />re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">匹配</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">IP</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">地址的正则表达式</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">
						<br />if(re.test(ip))<br />{<br />return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1<br />}<br />else<br />{<br />throw new Error("Not a valid IP address!")<br />}<br />}<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">不过上面的程序如果不用正则表达式，而直接用</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">split</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">函数来分解可能更简单，程序如下：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">
						<br />
						<br />var ip="10.100.20.168"<br />ip=ip.split(".")<br />alert("IP</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">值是：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">匹配</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">Email</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">地址的正则表达式：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">匹配网址</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">URL</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">的正则表达式：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">
						<a href="http://(/" target="_blank">
								<font color="#003063">http://(</font>
						</a> [\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">利用正则表达式去除字串中重复的字符的算法程序：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">[</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">注：此程序不正确，原因见本贴回复</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">]<br /><br />var s="abacabefgeeii"<br />var s1=s.replace(/(.).*\1/g,"$1")<br />var re=new RegExp("["+s1+"]","g")<br />var s2=s.replace(re,"") <br />alert(s1+s2) //</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">结果为：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">abcefgi<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">这个方法对于字符顺序有要求的字符串可能不适用。</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">
						<br />
						<br />
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">得用正则表达式从</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">URL</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">地址中提取文件名的</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">javascript</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">程序，如下结果为</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">page1<br /><br />s="<a href="http://www.9499.net/page1.htm"><font color="#003063">http://www.9499.net/page1.htm"</font></a><br />s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")<br />alert(s)<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">利用正则表达式限制网页表单里的文本框输入内容：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">
						<br />
						<br />
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">用正则表达式限制只能输入中文：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">用正则表达式限制只能输入全角字符：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">用正则表达式限制只能输入数字：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"<br /><br /></span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">用正则表达式限制只能输入数字和英文：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData<br /><br />几个常用正则表达式:<br />('text',clipboardData.getData('text').replace(/[^\d]/g,''))" <br /><span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Email : /^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/,    <br />Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,    <br />Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/,    <br />Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\':+!]*([^&lt;&gt;\"\"])*$/,    <br />IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,    <br />Currency : /^\d+(\.\d+)?$/,<br />Number : /^\d+$/,    <br />Zip : /^[1-9]\d{5}$/,    <br />QQ : /^[1-9]\d{4,8}$/,    <br />Integer : /^[-\+]?\d+$/,    <br />Double : /^[-\+]?\d+(\.\d+)?$/,    <br />English : /^[A-Za-z]+$/,    <br />Chinese :  /^[\u0391-\uFFE5]+$/,    <br />UnSafe :/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&amp;\*\.\(\)\[\]\{\}&lt;&gt;\?\\\/\'\"]*)|.{0,5})$|\s/,</span></span>
		</p>
<img src ="http://www.blogjava.net/blovesaga/aggbug/50602.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blovesaga/" target="_blank">blovesaga</a> 2006-06-05 22:40 <a href="http://www.blogjava.net/blovesaga/archive/2006/06/05/50602.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript正则表达式</title><link>http://www.blogjava.net/blovesaga/archive/2006/06/05/50601.html</link><dc:creator>blovesaga</dc:creator><author>blovesaga</author><pubDate>Mon, 05 Jun 2006 14:37:00 GMT</pubDate><guid>http://www.blogjava.net/blovesaga/archive/2006/06/05/50601.html</guid><wfw:comment>http://www.blogjava.net/blovesaga/comments/50601.html</wfw:comment><comments>http://www.blogjava.net/blovesaga/archive/2006/06/05/50601.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blovesaga/comments/commentRss/50601.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blovesaga/services/trackbacks/50601.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 正则表达式是一个描述字符模式的对象。										JavaScript				的				RegExp				对象和				String				对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法				.'***********************'              \\JavaScript//''***************...&nbsp;&nbsp;<a href='http://www.blogjava.net/blovesaga/archive/2006/06/05/50601.html'>阅读全文</a><img src ="http://www.blogjava.net/blovesaga/aggbug/50601.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blovesaga/" target="_blank">blovesaga</a> 2006-06-05 22:37 <a href="http://www.blogjava.net/blovesaga/archive/2006/06/05/50601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>了解JavaScript从基础开始</title><link>http://www.blogjava.net/blovesaga/archive/2006/06/05/50600.html</link><dc:creator>blovesaga</dc:creator><author>blovesaga</author><pubDate>Mon, 05 Jun 2006 14:34:00 GMT</pubDate><guid>http://www.blogjava.net/blovesaga/archive/2006/06/05/50600.html</guid><wfw:comment>http://www.blogjava.net/blovesaga/comments/50600.html</wfw:comment><comments>http://www.blogjava.net/blovesaga/archive/2006/06/05/50600.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blovesaga/comments/commentRss/50600.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blovesaga/services/trackbacks/50600.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#0000ff">JavaScript语法</font>
		</p>
		<p>什么是脚本程序和JavaScript</p>
		<p> *什么是脚本程序<br /> &lt;html&gt;<br /> &lt;script language="javascript"&gt;<br />    alert(new Date());<br /> &lt;/script&gt;<br /> &lt;/html&gt;</p>
		<p> *JavaScript简介<br />  前身叫作Livescript,是一种基于对象(Object)和事件驱动(Event Driver),并具有安全性能的脚本语言.<br /> *JavaScript与Java<br />  是两个公司开发的两个不同产品,作用与用途大不一样,但两者语法上有很多相似之处,JavaScript并不是<br />  Java的子集.<br /> *JavaScript,JScript与ECMAScript<br /> *脚本代码的位置<br />  我们可以把代码放到&lt;script&gt;&lt;/script&gt;标签之间:<br />  &lt;script&gt;<br />    var x=3;<br />  &lt;/script&gt;<br />  &lt;p&gt;This is a HTML 段落&lt;/p&gt;<br />  &lt;script&gt;<br />    alert(x);<br />  &lt;/script&gt;<br />  也可以放在一个单独的文件中:<br />  &lt;html&gt;<br />  &lt;script src="script.js" language="javascript"&gt;<br /> *将脚本程序代码作为属性值<br />  &lt;a href="javascript:alert(new Data());"&gt;javascript&lt;/a&gt;<br />  &lt;/html&gt;<br />=======================================================================================<br />JavaScript的基本语法</p>
		<p> *JavaScript中的标识符<br /> 标识符是指JavaScript中定义的符号,例如,变量名,函数名,数组名等.标识符可以由任意顺序的<br /> 大小写字母,数字,下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是JavaScript<br /> 中的保留关键字.<br /> 合法的标识符举例: indentifler,username,user_name,_username,$username<br /> 非法的标识符举例: int,98.3,Hello World<br /> *Java严格区分大小写<br /> computer和Computer是两个完全不同的标识符<br /> *JavaScript程序代码格式<br /> 每条功能语句的最后必须用分号(;)结束,每个词之间用空格,制表符,换行符或大括号,小括号这样<br /> 的分隔符隔开.<br /> *JavaScript程序的注释<br /> /*...*/中可以嵌套"//"注释,但不能嵌套"/"...."/".</p>
		<p>================================================================================<br />基本数据类型与常量</p>
		<p> *正型常量<br /> 十六进制以Ox或OX开头,例如:Ox8a.八进制必须以O开头,例如: 0123.十进制的第一位不能为0<br /> (数字0除外),例如: 123<br /> *字符常量<br /> 12.32,123.42,5E7,4e5等.<br /> *布尔值<br /> true和false.<br /> *字符串常量<br /> 例如: "a book of JavaScript",'abc',"a",""(空字符串) .<br /> 特殊字符需要用反斜杠(\)来转意.<br /> 例如: \r, \n, \t, \b, \', \\<br /> 在JavaScript中一个连续的字符串不能分开在两行中来写.可以使用"+"号连起来.<br /> *null常量<br /> 表示变量的值为空<br /> *undefined常量<br /> 表示一个变量还没有被复值时的状态,或某个对象的属性不存在.</p>
		<p>=========================================================================================<br />变量</p>
		<p> *定义一个变量,系统就会为之分配一块内存,程序可以用变量名来表示这块内存中的数据.<br /> *声明变量用var关键字<br /> 例如: var x; (这个时候就是undifeined)<br /> *声明变量的同时为其赋值<br /> 例如: var name="lisi";<br /> *对已赋值的变量赋于一个其他类型的数据<br /> 例如: name=123;<br /> *不事先声明变量而直接使用<br /> 例如: x=1234;</p>
		<p>算术运算符</p>
		<p> *+ 加法运算符或正值运算符,例如, x+5, +6.<br />  它还能实现多个字符串的想加,也能将字符串与其他的数据类型连成一个新的字符串,条件<br />  条件是该表达式中至少有一个字符串,例如: "x"+123的结果为"x123".<br /> *- 减法运算符或负预算符,例如, 7-3, -8.<br /> ** 乘法运算符,例如, 3*7.<br /> */ 除法运算符,例如 9/4.<br /> *% 求模运算符(算术中的求余),例如, 5%2<br /> *++将变量值加1后再将结果赋给这个变量,分为两种,例如a++和++a<br /> *--用法与++预算符一样<br /> </p>
		<p>赋值运算符<br />  <br />  赋值运算符的作用是将一个值赋给一个变量,最常用的是"=",还可以由"="运算符和其他的一些<br />  预算符组合成新的运算符,例如:<br />  "+=","-="等.</p>
		<p>比较运算符</p>
		<p>  *&gt;大于<br />   当左边的操作数大于右边的操作数时,返回true.<br />  *&lt;小与<br />  *=<br />  *&lt;=<br />  *&gt;=<br />  *==<br />  *!=<br />  注意: 不要把"=="写成"="</p>
		<p>逻辑运算符<br /> <br />  *&amp;&amp;<br />  逻辑与,当左右两边的操作数都为true时,返回值为true,否则为false.<br />  *||<br />  逻辑或,当左右两边的操作数都为false时,返回值为false,否则为true.<br />  *!<br />  逻辑非,当操作数为ture的时,返回值为false,否则为true.</p>
		<p>======================================================================== <br />程序流程控制<br /> <br /> *顺序结构<br /> *if条件选择语句<br /> *switch选择语句<br /> *while循环语句<br /> *do while语句<br /> *for循环语句<br /> *break与continue语句</p>
		<p> if条件语句语法1:<br /> if(条件语句)<br /> {<br />   执行语句块<br /> }<br /> 注意:if(x==null)或if(typeof(x)=="undefined")可以简写成if(!x)<br /> if条件语句语法2:<br /> if(条件语句)<br /> {<br />   执行语句块1<br /> }<br /> else<br /> {<br />   执行语句块2<br /> }<br /> 变量=布尔表达式? 语句1 :语句2<br /> if条件语句语法3:<br /> if(条件语句)<br /> {<br />   执行语句块1<br /> }<br /> else if(条件语句2)<br /> {<br />   执行语句块2<br /> }<br /> ....<br /> else if(条件语句块n)<br /> {<br />   执行语句块n<br /> }<br /> else<br /> {<br />   执行语句块n+1<br /> }<br /> if语句块的嵌套<br /> if(x&lt;1)<br /> {<br />  if(y==1)<br />    alert("x&lt;1,y==1");<br />  else<br />    alert("x&lt;1,y!=1");<br />  }<br />  else if(x&gt;10)<br />  {<br />    if(y==1)<br />      alert("x&gt;10,y==1);<br />    else<br />      alert("x&gt;10,y!=1");   <br />  }</p>
		<p>===================================================================<br />函数<br /> <br /> *函数的作用与定义<br /> *全局变量与局部变量<br /> *参数个数可变的函数<br /> *创建动态函数<br /> *JavaScript中的系统函数</p>
		<p>  定义一个函数的语法如下:<br />  function 函数名 (参数列表)<br />  {<br />     程序代码<br />     return 表达式;<br />  }<br />  对函数调用的几种方式:<br />  1.函数名(传递函数的参数1,传递给函数的参数2,.....)<br />  2.变量=函数名(传递函数的参数1,传递给函数的参数2,.....)<br />  3.对于有返回值的函数调用，也可以在程序中直接使用返回结果,例如:<br />  alert("sum="+square(2,3));</p>
		<p>  全局变量与局部变量，看下面的代码:<br />  &lt;script language="javascript"&gt;<br />   var msg="全局变量";<br />   function show()<br />   {<br />      msg="局部变量";<br />   }<br />   show();<br />   alert(msg);<br />  &lt;/script&gt;</p>
		<p>  参数个数可变的的函数:<br /> &lt;script language="javascript"&gt;<br />  function testparams()<br />  {<br />    var params="";<br />    for(var i=0;i&lt;arguments.length;i++)<br />    {<br />      params +=" "+ arguments[i];<br />    }<br />    alert(params);<br />  }<br />    testparams("abc",123);<br />    testparams(123,456,"abc");<br /> &lt;/script&gt;<br />  注意:arguments代表了传递给函数的所有参数的所有集合。当函数的个数不确定，<br />  获得参数个数很多，你又不想为每个参数定义一个变量，那么你就可以定义一个<br />  像上面那个一样的，定义一个为空的参数名，在内部用循环来实现。<br /> 创建动态函数的语法:<br /> var varName=new Function(argument1,....,lastArgument);<br /> 说明:<br /> 所有的参数都必须是字符串型的,最后的参数必须是这个动态函数的功能程序代码.<br /> 例子:<br /> &lt;script&gt;<br />   var square=new Function("x","y",<br />            "var sum;sum=x*x+y*y; return sum;");<br />   alert(square(3,2));<br /> &lt;/script&gt;<br /> 动态函数有什么作用,在什么情况下使用?<br /> <br /> JavaScript中的系统函数:<br /> .encodeURI方法(比URL的描述的范围更大,一般情况下可以等同)<br /> 返回一个URI字符串编码后的效果。例如:<br /> &lt;script language="javascript"&gt;<br />   var uriStr=encodeURI("<a href="http://www.doit.org/index.html?country">http://www.doit.org/index.html?country</a>=中国&amp;name=z x");<br />   alert(uriStr);<br /> &lt;/script&gt;</p>
		<p> .decodeURI方法<br /> 将一个已编码的URI字符串解码成最初的字符串并返回.<br /> .parseInt方法<br />  第一字符串按指定的进制转换成一个整数，语法格式为：parseInt(numString,[redix])。<br />  如果没有指定第二个参数，则前缀为'Ox'的字符串被视为十六进制，前缀为'O'的字符串<br />  被视为八进制，所有其他的字符串被视为十进制。<br />  例如: alert(parseInt("123abc",10));<br /> .parseFloat方法<br />  将一个字符串转换为小数。<br /> .isNaN方法(用与检测)<br /> .escape方法(用于对文本的简单加密)<br />  返回对一个字符串进行编码后的结果字符串。所有空格，标点，重音符号以及任何其他<br />  ASCII字符都用%xx编码替换，其中xx等于表示该字符的Unicode编码的十六进制数，字符<br />  值大于255字符以%uxxxx格式表示。<br /> .unescape方法<br />  将一个用escape方法编码的字符串解码成原始字符串。<br /> .eval方法<br />  将其中的参数字符串作为一个JavaScript表达式执行。</p>
		<p>=======================================================================<br />  对象<br /> *对象与对象实例<br /> *构造方法与this关键字的作用<br /> *在函数中修改参数值的问题</p>
		<p> 对象与对象实例<br /> .对象中所包含的变量就是对象的属性，对象中所包含的对属性进行操作的函数就是对象的<br />  方法，对象的属性和方法都叫对象的成员。<br /> .对象是某一类事物的描述，是抽象的概念；而对象实例是一类事物中的具体个例。<br /> .能够被用来创建对象实例的函数就是对象的构造函数，只要定义一个对象的构造函数，就<br />  等于被定义了一个对象。使用new关键字和对象的构造函数就可以创建对象实例，语法格式<br />  如下: var ObjectInstance = new ObjName(传递给该对象的实际参数列表)。<br />  &lt;script language="javascript"&gt;<br />  function Person()<br />  { <br />    //这是一个构造函数<br />  }<br />  var person1 = new Person();  //创建了一个实例变量(对象实例)<br />  person1.age = 18;<br />  person1.name = "blovesaga"; //age和name为对象属性<br />  //alert(person1.name+"."+person1.age);<br />  function sayFunc()<br />  {<br />    alert(person1.name+"."+person1.age);//我们也可以使用person["age"](对象实例["成员变量"])来访问<br />  }<br />  person1.say=sayFunc;  //把方法名赋值给了person1.say成员，我们可以在其他地方像<br />                        //调用方法一样来调用<br />  person1.say();<br />  &lt;/script&gt;</p>
		<p>看下面的例子:<br />&lt;html&gt;<br /> &lt;script language="javascript"&gt;<br />   //定义一个构造函数,也就是对象的名称为person<br />   function Person()<br />   {<br />   }<br />   //创建一个对象实例<br />   var person1=new Person();<br />   person1.age=18;<br />   person1.name="zxy";<br />   //编写一个成员方法<br />   function sayFunc()<br />   {<br />      var x="name";<br />      eval("alert(person1."+ x + ");");  //这个字符串中的内容将被作为JavaScipt代码来执行<br />      alert(person1.name+":"+person1.age);<br />   }<br />   person1.say=sayFunc; //把方法名赋值给了person1.say成员 <br />   person1.say=sayFunc(); //写了括号表示执行sayFunc()函数在复值<br />   person1.say();<br /> &lt;/script&gt;<br />&lt;/html&gt;</p>
		<p>===================================================================<br />构造方法与this关键字</p>
		<p> .为一个对象实例新增加的属性和方法，不会增加到同一个对象所产生的其它对象实例上。<br /> .所有的实例对象在创建都会自动调用构造函数，在构造函数中增加的属性和方法会被<br />  增加到每个对象实例上。<br /> .对象实例是使用new关键字创建的，在构造方法中不要有返回结果的return语句。<br /> .调用对象的成员方法时，需要使用“对象实例.成员方法"的形式，很显然，用作成<br />  员方法的函数被调用，一定伴随有某个对象实例。this关键字代表某个成员方法执行时<br />   ，引用该方法的当前对象实例，所以，this关键字一般只在用作对象成员方法的<br />  函数中出现。<br />  &lt;script language="javascript"&gt;<br />   function Person(name,age)<br />   {<br />     this.age=age;<br />     this.name=name;<br />     this.say=sayFunc;<br />   }<br />   function sayFunc()<br />   {<br />      alert(this.name+":"+this.age);<br />   }<br />   var person1=new Person("张山",18);<br />   person1.say();<br />   var person2 = new Person("里四",30);<br />   person2.say();<br />  &lt;/script&gt;<br />例子代码:<br />&lt;html&gt;<br /> &lt;script language="javascript"&gt;<br />   //定义一个构造函数<br />   function Person(name,age)<br />   {<br />     this.name=name;//当前的对象实例增加一个成员变量name,成员变量的通过Person()参数name传递进来<br />     this.age=age;//当前的对象实例增加一个成员变量age,成员变量的通过Person()参数age传递进来 <br />     this.say=sayFunc; //增加一个sayFunc()函数<br />   }<br />   function sayFunc()<br />   {<br />     alert(this.name + ":" + this.age);<br />   }<br />   //创建一个对象实例<br />   var person1=new Person("张三",18);<br />   person1.say();  //调用person1的say()成员方法<br />   var person2=new Person("李四",29);<br />   person2.say();  //调用person2的say()成员方法<br /> &lt;/script&gt;<br />&lt;/html&gt;</p>
		<p>=====================================================================<br />在函数中修改参数值的问题</p>
		<p> 将基本数据类型的变量作为函数参数传递的情况:<br /> &lt;script language="javascript"&gt;<br />  function changeValue(x)<br />  {<br />    x=5;<br />  }<br />  var x=3;<br />  changeValue(x);<br />  alert(x);<br /> &lt;/script&gt;<br />注意： 在函数changeValue(x)中的x=5并不能修改主程序中的x值，函数接受的参数<br />就相当于一个局部变量，当函数调用完也就没用了。所以该程序的结果为x=3;如果<br />我们把一个对象的实例传递给函数，而我们有在函数中修改了对象实例的属性，那么<br />最后的结果也会变化的。</p>
<img src ="http://www.blogjava.net/blovesaga/aggbug/50600.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blovesaga/" target="_blank">blovesaga</a> 2006-06-05 22:34 <a href="http://www.blogjava.net/blovesaga/archive/2006/06/05/50600.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>