??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲 国产 图片,色窝窝亚洲av网,日批日出水久久亚洲精品tvhttp://www.tkk7.com/joan/category/33809.htmlUは张で zh-cnThu, 07 Jan 2010 04:41:33 GMTThu, 07 Jan 2010 04:41:33 GMT60jquery 实用收藏http://www.tkk7.com/joan/articles/307918.htmljoanjoanThu, 31 Dec 2009 07:36:00 GMThttp://www.tkk7.com/joan/articles/307918.htmlhttp://www.tkk7.com/joan/comments/307918.htmlhttp://www.tkk7.com/joan/articles/307918.html#Feedback0http://www.tkk7.com/joan/comments/commentRss/307918.htmlhttp://www.tkk7.com/joan/services/trackbacks/307918.html概述

jQuery 是 prototype 之后又一个优U?Javascript 框架。其宗旨是—写更少的代?做更多的事情。它是轻量?js ?压羃后只?1k) Q这是其它的 js 库所?a >?qing)的Q它兼容 CSS3Q还兼容各种览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+Q?jQuery 是一个快速的Q简z的 javaScript 库,使用戯更方便地处理 HTML documents、events、实现动L果,q且方便Cؓ(f)|站提供 AJAX 交互?jQuery q有一个比较大的优势是Q它的文档说明很全,而且各种应用也说得很详细Q同时还有许多成熟的插g可供选择?jQuery 能够使用L(fng) html 保持代码和 html 内容分离Q也是_(d)不用再在 html 里面插入一堆js来调用命令了Q只需定义 id 卛_。今天在Kollermedia.at上发C一JQuery插g列表?a target="_blank">文章Q特推荐如下?/p>

文g上传(File upload)

Ajax File Upload.
jQUploader.
Multiple File Upload plugin
jQuery File Style.
Styling an input type file.
Progress Bar Plugin.

表单验证(Form Validation)

jQuery Validation.
Auto Help.
Simple jQuery form validation.
jQuery XAV - form validations.
jQuery AlphaNumeric.
Masked Input.
TypeWatch Plugin.
Text limiter for form fields.
Ajax Username Check with jQuery.

表单Q选取?Form - Select Box stuff)

jQuery Combobox.
jQuery controlled dependent (or Cascadign) Select List.
Multiple Selects.
Select box manipulation.
Select Combo Plugin.
jQuery - LinkedSelect
Auto-populate multiple select boxes.
Choose Plugin (Select Replacement).

表单基本、输入框、选择框等(Form Basics, Input Fields, Checkboxes etc.)

jQuery Form Plugin.
jQuery-Form.
jLook Nice Forms.
jNice.
Ping Plugin.
Toggle Form Text.
ToggleVal.
jQuery Field Plugin.
jQuery Form’n Field plugin.
jQuery Checkbox manipulation.
jTagging.
jQuery labelcheck.
Overlabel.
3 state radio buttons.
ShiftCheckbox jQuery Plugin.
Watermark Input.
jQuery Checkbox (checkboxes with imags).
jQuery SpinButton Control.
jQuery Ajax Form Builder.
jQuery Focus Fields.
jQuery Time Entry.

旉、日期和颜色选取(Time, Date and Color Picker)

jQuery UI Datepicker.
jQuery date picker plugin.
jQuery Time Picker.
Time Picker.
ClickPick.
TimePicker.
Farbtastic jQuery Color Picker Plugin.
Color Picker by intelliance.fr.

投票插g(Rating Plugins)

jQuery Star Rating Plugin.
jQuery Star Rater.
Content rater with asp.net, ajax and jQuery.
Half-Star Rating Plugin.

搜烦插g(Search Plugins)

jQuery Suggest.
jQuery Autocomplete.
jQuery Autocomplete Mod.
jQuery Autocomplete by AjaxDaddy.
jQuery Autocomplete Plugin with HTML formatting.
jQuery Autocompleter.
AutoCompleter (Tutorial with PHP&MySQL).
quick Search jQuery Plugin.

~辑?Inline Edit & Editors)

jTagEditor.
WYMeditor.
jQuery jFrame.
Jeditable - edit in place plugin for jQuery.
jQuery editable.
jQuery Disable Text Select Plugin.
Edit in Place with Ajax using jQuery.
jQuery Plugin - Another In-Place Editor.
TableEditor.
tEditable - in place table editing for jQuery.

多媒体、视频、Flash{?Audio, Video, Flash, SVG, etc)

jMedia - accessible multi-media embedding.
JBEdit - Ajax online Video Editor.
jQuery MP3 Plugin.
jQuery Media Plugin.
jQuery Flash Plugin.
Embed QuickTime.
SVG Integration.

囄(Photos/Images/Galleries)

ThickBox.
jQuery lightBox plugin.
jQuery Image Strip.
jQuery slideViewer.
jQuery jqGalScroll 2.0.
jQuery - jqGalViewII.
jQuery - jqGalViewIII.
jQuery Photo Slider.
jQuery Thumbs - easily create thumbnails.
jQuery jQIR Image Replacement.
jCarousel Lite.
jQPanView.
jCarousel.
Interface Imagebox.
Image Gallery using jQuery, Interface & Reflactions.
simple jQuery Gallery.
jQuery Gallery Module.
EO Gallery.
jQuery ScrollShow.
jQuery Cycle Plugin.
jQuery Flickr.
jQuery Lazy Load Images Plugin.
Zoomi - Zoomable Thumbnails.
jQuery Crop - crop any image on the fly.
Image Reflection.

Google地图QGoogle MapQ?/h2>

jQuery Plugin googlemaps.
jMaps jQuery Maps Framework.
jQmaps.
jQuery & Google Maps.
jQuery Maps Interface forr Google and Yahoo maps.
jQuery J Maps - by Tane Piper.

游戏(Games)

Tetris with jQuery.
jQuery Chess.
Mad Libs Word Game.
jQuery Puzzle.
jQuery Solar System (not a game but awesome jQuery Stuff).

表格{?Tables, Grids etc.)

UI/Tablesorter.JQuery_003
jQuery ingrid.
jQuery Grid Plugin.
Table Filter - awesome!.
TableEditor.
jQuery Tree Tables.
Expandable “Detail” Table Rows.
Sortable Table ColdFusion Costum Tag with jQuery UI.
jQuery Bubble.
TableSorter.
Scrollable HTML Table.
jQuery column Manager Plugin.
jQuery tableHover Plugin.
jQuery columnHover Plugin.
jQuery Grid.
TableSorter plugin for jQuery.
tEditable - in place table editing for jQuery.
jQuery charToTable Plugin.
jQuery Grid Column Sizing.
jQuery Grid Row Sizing.

l计?Charts, Presentation etc.)

jQuery Wizard Plugin .
jQuery Chart Plugin.
Bar Chart.

Ҏ(gu)、圆角、背?Border, Corners, Background)

jQuery Corner.
jQuery Curvy Corner.
Nifty jQuery Corner.
Transparent Corners.
jQuery Corner Gallery.
Gradient Plugin.

文字和超链接(Text and Links)

jQuery Spoiler plugin.
Text Highlighting.
Disable Text Select Plugin.
jQuery Newsticker.
Auto line-height Plugin.
Textgrad - a text gradient plugin.
LinkLook - a link thumbnail preview.
pager jQuery Plugin.
shortKeys jQuery Plugin.
jQuery Biggerlink.
jQuery Ajax Link Checker.

鼠标提示QTooltipsQ?/h2>

jQuery Plugin - Tooltip.
jTip - The jQuery Tool Tip.
clueTip.
BetterTip.
Flash Tooltips using jQuery.
ToolTip.

菜单和导?Menus, Navigations)

jQuery Tabs Plugin - awesome! . [demo nested tabs.]
another jQuery nested Tab Set example (based on jQuery Tabs Plugin).
jQuery idTabs.
jdMenu - Hierarchical Menu Plugin for jQuery.
jQuery SuckerFish Style.
jQuery Plugin Treeview.
treeView Basic.
FastFind Menu.
Sliding Menu.
Lava Lamp jQuery Menu.
jQuery iconDock.
jVariations Control Panel.
ContextMenu plugin.
clickMenu.
CSS Dock Menu.
jQuery Pop-up Menu Tutorial.
Sliding Menu.

http://stilbuero.de/jquery/tabs_3/

qȝ、翻转等(Accordions, Slide and Toggle stuff)

jQuery Plugin Accordion.
jQuery Accordion Plugin Horizontal Way.
haccordion - a simple horizontal accordion plugin for jQuery.
Horizontal Accordion by portalzine.de.
HoverAccordion.
Accordion Example from fmarcia.info.
jQuery Accordion Example.
jQuery Demo - Expandable Sidebar Menu.
Sliding Panels for jQuery.
jQuery ToggleElements.
Coda Slider.
jCarousel.
Accesible News Slider Plugin.
Showing and Hiding code Examples.
jQuery Easing Plugin.
jQuery Portlets.
AutoScroll.
Innerfade.

拖放插g(Drag and Drop)

UI/Draggables.
EasyDrag jQuery Plugin.
jQuery Portlets.
jqDnR - drag, drop resize.
Drag Demos.

XML XSL JSON Feeds

XSLT Plugin.
jQuery Ajax call and result XML parsing.
xmlObjectifier - Converts XML DOM to JSON.
jQuery XSL Transform.
jQuery Taconite - multiple Dom updates.
RSS/ATOM Feed Parser Plugin.
jQuery Google Feed Plugin.

览?Browserstuff)

Wresize - IE Resize event Fix Plugin.
jQuery ifixpng.
jQuery pngFix.
Link Scrubber - removes the dotted line onfocus from links.
jQuery Perciformes - the entire suckerfish familly under one roof.
Background Iframe.
QinIE - for proper display of Q tags in IE.
jQuery Accessibility Plugin.
jQuery MouseWheel Plugin.

对话框、确认窗?Alert, Prompt, Confirm Windows)

jQuery Impromptu.
jQuery Confirm Plugin.
jqModal.
SimpleModal.

CSS

jQuery Style Switcher.
JSS - Javascript StyleSheets.
jQuery Rule - creation/manipulation of CSS Rules.
jPrintArea.

DOM、AJAX和其它JQuery插gQDOM, Ajax and other jQuery pluginsQ?/h2>

FlyDOM.
jQuery Dimenion Plugin.
jQuery Loggin.
Metadata - extract metadata from classes, attributes, elements.
Super-tiny Client-Side Include Javascript jQuery Plugin.
Undo Made Easy with Ajax.
JHeartbeat - periodically poll the server.
Lazy Load Plugin.
Live Query.
jQuery Timers.
jQuery Share it - display social bookmarking icons.
jQuery serverCookieJar.
jQuery autoSave.
jQuery Puffer.
jQuery iFrame Plugin.
Cookie Plugin for jQuery.
jQuery Spy - awesome plugin.
Effect Delay Trick.
jQuick - a quick tag creator for jQuery.
Metaobjects
.
elementReady.

英文Q?a title="http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/" >http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/



joan 2009-12-31 15:36 发表评论
]]>JavaScript多线E编E?/title><link>http://www.tkk7.com/joan/articles/232317.html</link><dc:creator>joan</dc:creator><author>joan</author><pubDate>Sat, 04 Oct 2008 06:18:00 GMT</pubDate><guid>http://www.tkk7.com/joan/articles/232317.html</guid><wfw:comment>http://www.tkk7.com/joan/comments/232317.html</wfw:comment><comments>http://www.tkk7.com/joan/articles/232317.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/joan/comments/commentRss/232317.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/joan/services/trackbacks/232317.html</trackback:ping><description><![CDATA[<h3> <div id="6o64uks" class="blog_content"> <h3>AJAX 开发中的难?/h3> <p>让我们通过一个简单的例子来认识这个问题。假设你要徏立一个树(wi)形结构的公告栏系l?BBS)Q它可以Ҏ(gu)用户h与服务器q行交互Q动态加载每文章的信息Q而不是一ơ性从服务器蝲入所有文章信息。每文章有四个相关属性:(x)pȝ中可以作为唯一标识的ID、发贴h姓名、文章内容以?qing)包含其所有子文章ID的数l信息。首先假定有一个名为getArticle()的函数可以加载一文章信息。该函数接收的参数是要加载文章的IDQ通过它可从服务器获取文章信息。它q回的对象包含与文章相关的四条属性:(x)idQnameQcontent和children。例E如下:(x)</p> <pre>function ( id ) { var a = getArticle(id); document.writeln(a.name + " " + a.content); } </pre> <p>然而你也许?x)注意到Q重复用同一个文章ID调用此函敎ͼ需要与服务器之间进行反复且无益的通信。想要解册个问题,可以考虑使用函数 getArticleWithCache()Q它相当于一个带有缓存能力的getArticle()。在q个例子中,getArticle()q回的数据只是作Z个全局变量被保存下来:(x)</p> <pre>var cache = {}; function getArticleWithCache ( id ) { if ( !cache[id] ) { cache[id] = getArticle(id); } return cache[id]; } </pre> <p>现在已将d的文章缓存v来,让我们再来考虑一下函数backgroundLoad()Q它应用我们上面提到的缓存机制加载所有文章信息。其用途是Q当读者在阅读某篇文章Ӟ从后台预加蝲它所有子文章。因为文章数据是?wi)状l构的,所以很Ҏ(gu)写一个递归的算法来遍历?wi)ƈ且加载所有的文章Q?/p> <pre>function backgroundLoad ( ids ) { for ( var i=0; i < ids.length; i++ ) { var a = getArticleWithCache(ids[i]); backgroundLoad(a.children); } } </pre> <p>backgroundLoad ()函数接收一个ID数组作ؓ(f)参数Q然后通过每个ID调用前面定义q的getArticldWithCache()Ҏ(gu)Q这样就把每个ID对应的文章缓存v来。之后再通过已加载文章的子文章ID数组递归调用backgroundLoad()Ҏ(gu)Q如此整个文章树(wi)p~存h?/p> <p>到目前ؓ(f)止,一切似乎看h都很完美。然而,只要你有q开发AJAX应用的经验,你就应该知晓q种q稚的实现方法根本不?x)成功,q个例子成立的基是默?getArticle()用的是同步通信。可是,作ؓ(f)一条基本原则,JavaScript要求在与服务器进行交互时要用异步通信Q因为它是单U程的。就单性而言Q把每一件事情(包括GUI事g和渲染)都放在一个线E里来处理是一个很好的E序模型Q因样就无需再考虑U程同步q些复杂问题。另一斚wQ他也暴露了应用开发中的一个严重问题,单线E环境看h对用戯求响应迅速,但是当线E忙于处理其它事情时(比如说调用getArticle())Q就不能对用L(fng)鼠标点击和键盘操作做出响应?</p> <p>如果在这个单U程环境里进行同步通信?x)发生什么事情呢Q同步通信?x)中断浏览器的执行直臌得通信l果。在{待通信l果的过E中Q由于服务器的调用还没有完成Q线E会(x)停止响应用户q保持锁定状态直到调用返回。因个原因,当浏览器在等待服务器响应时它不能对用戯Z出响应,所以看h像是ȝ了。当执行 getArticleWithCache()和backgroundLoad()?x)有同样的问题,因?f)它们都是ZgetArticle()函数的。由于下载所有的文章可能?x)耗费很可观的一D|_(d)因此对于backgroundLoad()函数来说Q浏览器在此D|间内的冻l就是一个很严重的问题——既然浏览器都已l冻l,当用h在阅L章时׃可能首先L行后台预加蝲数据Q如果这样做q当前的文章都没办法诅R?/p> <p>如上所qͼ既然同步通信在用中?x)造成如此严重的问题,JavaScript把异步通信作ؓ(f)一条基本原则。因此,我们可以Z异步通信改写上面的程序?JavaScript要求以一U事仉动的E序设计方式来写异步通信E序。在很多场合中,你都必须指定一个回调程序,一旦收到通信响应Q这个函数就?x)被调用。例如,上面定义的getArticleWithCache()可以写成q样Q?/p> <pre>var cache = {}; function getArticleWithCache ( id, callback ) { if ( !cache[id] ) { callback(cache[id]); } else { getArticle(id, function( a ){ cache[id] = a; callback(a); }); } } </pre> <p>q个E序也在内部调用了getArticle()函数。然而需要注意的是,为异步通信设计的这版getArticle()函数要接收一个函C为第二个参数。当调用q个getArticle()函数Ӟ与从前一栯l服务器发送一个请求,不同的是Q现在函C(x)q速返回而非{待服务器的响应。这意味着Q当执行权交回给调用E序Ӟq没有得到服务器的响应。如此一来,U程可以去执行其它d直至获得服务器响应,q在此时调用回调函数。一旦得到服务器响应Q?getArticle()的第二个参数作ؓ(f)预先定义的回调函数就要被调用Q服务器的返回值即为其参数。同L(fng)QgetArticleWithCache ()也要做些改变Q定义一个回调参C为其W二个参数。这个回调函数将在被传给getArticle()的回调函C调用Q因而它可以在服务器通信l束后被执行?/p> <p>单是上面q些改动你可能已l认为相当复杂了Q但是对backgroundLoad()函数做得改动会(x)更复杂,它也要被改写成可以处理回调函数的形式Q?/p> <pre>function backgroundLoad ( ids, callback ) { var i = 0; function l ( ) { if ( i < ids.length ) { getArticleWithCache(ids[i++], function( a ){ backgroundLoad(a.children, l); }); } else { callback(); } } l(); } </pre> <p>改动后的backgroundLoad()函数看上d我们以前的那个函数已l相ȝq,不过他们所实现的功能ƈ无二致。这意味着q两个函数都接受ID数组作ؓ(f)参数Q对于数l里的每个元素都要调用getArticleWithCache()Q再应用已经获得子文章ID递归调用backgroundLoad ()。不q同hҎ(gu)l的循环讉KQ新函数中的׃太好辨认了,以前的程序中是用一个for循环语句完成的。ؓ(f)什么实现同样功能的两套函数是如此的大相径庭呢?</p> <p>q个差异源于一个事实:(x)M函数在遇到有需要同服务器进行通信情况后,都必ȝ刻返回,例如getArticleWithCache()。除非原来的函数不在执行当中Q否则应当接受服务器响应的回调函数都不能被调用。对于JavaScriptQ在循环q程中中断程序ƈ在稍后从q个断点l箋开始执行程序是不可能的Q例如一个for语句。因此,本例利用递归传递回调函数实现@环结构而非一个传l@环语句。对那些熟?zhn)q箋传送风?CPS)的h来说Q这是一?CPS的手动实玎ͼ因ؓ(f)不能使用循环语法Q所以即便如前面提到的遍历树(wi)那么单的E序也得写得很复杂。与事g驱动E序设计相关的问题是<a >控制问?/a>Q@环和其它控制表辑ּ可能比较隄解?/p> <p>q里q有另外一个问题:(x)如果你把一个没有应用异步通信的函数{换ؓ(f)一个用异步通信的函敎ͼ那么重写的函数将需要一个回调函C为新增参敎ͼqؓ(f)已经存在的APIs造成了很大问题,因ؓ(f)内在的改变没有把影响限于内部Q而是D整体混ؕ的APIs以及(qing)API的其它用者的改变?/p> <p>造成q些问题目的Ҏ(gu)原因是什么呢Q没错,正是JavaScript单线E机制导致了q些问题。在单线E里执行异步通信需要事仉动程序设计和复杂的语句。如果当E序在等待服务器的响应时Q有另外一个线E可以来处理用户hQ那么上q复杂技术就不需要了?/p> <h3>试试多线E编E?/h3> <p>让我来介l一下Concurrent.ThreadQ它是一个允许JavaScriptq行多线E编E的库,应用它可以大大缓解上文提?qing)的在AJAX开发中与异步通信相关的困难。这是一个用JavaScript写成的免费的软g库,使用它的前提是遵守Mozilla Public License和GNU General Public Licenseq两个协议。你可以?a >他们的网?</a>下蝲源代码?/p> <p>马上来下载和使用源码吧!假定你已l将下蝲的源码保存到一个名为Concurrent.Thread.js的文件夹里,在进行Q何操作之前,先运行如下程序,q是一个很单的功能实现Q?/p> <pre><code><script type="text/javascript" src="Concurrent.Thread.js"></script> <script type="text/javascript"> Concurrent.Thread.create(function(){ var i = 0; while ( 1 ) { document.body.innerHTML += i++ + "<br>"; } }); </script></code></pre> <p>执行q个E序会(x)序昄?开始的数字Q它们一个接一个出玎ͼ你可以滚屏来看它。现在让我们来仔l研I一下代码,他应用while(1)条g刉了一个不?x)中止的循环Q通常情况下,象这样不断用一个ƈ且是唯一一个线E的JavaScriptE序?x)导致浏览器看v来象ȝ了一P自然也就不会(x)允许你滚屏。那么ؓ(f)什么上面的q段E序允许你这么做呢?关键之处在于while(1)上面的那条Concurrent.Thread.create()语句Q这是这个库提供的一个方法,它可以创Z个新U程。被当做参数传入的函数在q个新线E里执行Q让我们对程序做如下微调Q?/p> <pre><code><script type="text/javascript" src="Concurrent.Thread.js"></script> <script type="text/javascript"> function f ( i ){ while ( 1 ) { document.body.innerHTML += i++ + "<br>"; } } Concurrent.Thread.create(f, 0); Concurrent.Thread.create(f, 100000); </script> </code></pre> <p><span style="font-family: monospace">在这个程序里有个新函数f()可以重复昄数字Q它是在E序Dv始定义的Q接着以f()为参数调用了两次create()Ҏ(gu)Q传lcreate()Ҏ(gu)的第二个参数会(x)不加修改Clf()。执行这个程序,先会(x)看到一些从0开始的数Q接着是一些从100,000开始的大数Q然后又是接着前面数序的数字。你可以观察到程序在交替昄数和大敎ͼq说明两个线E在同时q行?/span></p> <p>让我来展CConcurrent.Thread的另外一个用法。上面的例子调用create()Ҏ(gu)来创建新U程。不调用库里的Q何APIs也有可能实现q个目的。例如,前面那个例子可以q样写:(x)</p> <pre><code><script type="text/javascript" src="Concurrent.Thread.js"></script> <script type="text/x-script.multithreaded-js"> var i = 1; while ( 1 ) { document.body.innerHTML += i++ + "<br>"; } </script> </code></pre> <p><span style="font-family: monospace">在script 标签内,很简单地用JavaScript写了一个无I@环。你应该注意到标{ֆ的type属性,那里是一个很陌生的?text/x- script.multithreaded-js)Q如果这个属性被攑֜script标签内,那么Concurrent.Thread׃(x)在一个新的线E内执行标签之间的程序。你应当C一点,在本例一P必须Concurrent.Thread库包含进来?/span></p> <p>有了Concurrent.ThreadQ就有可能自如的执行环境在U程之间q行切换Q即使你的程序很ѝ连l性很强。我们可以简要地讨论下如何执行这U操作。简a之,需要进行代码{换。粗略地Ԍ首先要把传递给create()的函数{换成一个字W串Q接着改写直至它可以被分批分次执行。然后这些程序可以依照调度程序逐步执行。调度程序负责协调多U程Q换句话_(d)它可以在适当的时候做整以便每一个修改后的函数都?x)得到同{机?x)运行?Concurrent.Thread实际上ƈ没有创徏新的U程Q仅仅是在原本单U程的基上模拟了一个多U程环境?/p> <p>虽然转换后的函数看v来是q行在不同的U程内,但是实际上只有一个线E在做这所有的事情。在转换后的函数内执行同步通信仍然?x)造成览器冻l,你也怼(x)认ؓ(f)以前的那些问题根本就没有解决。不q你不必耽心QConcurrent.Thread提供了一个应用JavaScript 的异步通信方式实现的定刉信库,它被设计成当一个线E在{待服务器的响应时允许其它线E运行。这个通信库存?Concurrent.Thread.Http下。它的用法如下所C:(x)</p> <pre><code><script type="text/javascript" src="Concurrent.Thread.js"></script> <script type="text/x-script.multithreaded-js"> var req = Concurrent.Thread.Http.get(url, ["Accept", "*"]); if (req.status == 200) { alert(req.responseText); } else { alert(req.statusText); } </script> </code></pre> <p>get()Ҏ(gu)Q就像它的名字暗C的那样Q可以通过HTTP的GETҎ(gu)获得指定URL的内容,它将目标URL作ؓ(f)W一个参敎ͼ一个代表HTTPh头的数组作ؓ(f)可选的W二个参数。get()Ҏ(gu)与服务器交互Q当得到服务器的响应后就q回一个XMLHttpRequest对象作ؓ(f)q回倹{当get()Ҏ(gu)q回Ӟ已经收到了服务器响应Q所以就没必要再用回调函数接收结果。自?dng)也不必再耽心当程序等待服务器的响应时览器冻l的情况了。另外,q有一?post()Ҏ(gu)可以用来发送数据到服务器:(x)</p> <pre><code><script type="text/javascript" src="Concurrent.Thread.js"></script> <script type="text/x-script.multithreaded-js"> var req = Concurrent.Thread.Http.post(url, "key1=val1&key2=val2"); alert(req.statusText); </script></code> </pre> <p>post()Ҏ(gu)目的URL作ؓ(f)W一个参敎ͼ要发送的内容作ؓ(f)W二个参数。像get()Ҏ(gu)那样Q你也可以将h头作为可选的W三个参数?/p> <p>如果你用q个通信库实CW一个例子当中的getArticle()Ҏ(gu)Q那么你很快p应用文章开头示例的那种单的Ҏ(gu)写出getArticleWithCache(),backgroundLoad ()以及(qing)其它调用了getArticle()Ҏ(gu)的函C。即使是那版backgroundLoad()正在L章数据,照例q有另外一个线E可以对用户h做出响应Q浏览器因此也不?x)冻l。现在,你能理解在JavaScript中应用多U程有多实用了?</p> <h3>想了解更?/h3> <p>我向你介l了一个可以在JavaScript中应用多U程的库QConcurrent.Thread。这文章的内容只是很初U的东西Q如果你x深入的了解,我推荐?zhn)ȝ?a >the tutorial</a>。它提供有关Concurrent.Thread用法的更多内容,q列Z可供高用户使用的文档,是最适合h的材料。访?a >他们的网?/a>也不错,那里提供更多信息?/p> </div> </h3><img src ="http://www.tkk7.com/joan/aggbug/232317.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/joan/" target="_blank">joan</a> 2008-10-04 14:18 <a href="http://www.tkk7.com/joan/articles/232317.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js正则表达?/title><link>http://www.tkk7.com/joan/articles/222371.html</link><dc:creator>joan</dc:creator><author>joan</author><pubDate>Fri, 15 Aug 2008 15:40:00 GMT</pubDate><guid>http://www.tkk7.com/joan/articles/222371.html</guid><wfw:comment>http://www.tkk7.com/joan/comments/222371.html</wfw:comment><comments>http://www.tkk7.com/joan/articles/222371.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/joan/comments/commentRss/222371.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/joan/services/trackbacks/222371.html</trackback:ping><description><![CDATA[<div id="e8c4myo" class="lh3" id="veryContent" style="overflow: hidden; width: 100%; height: 2px"></div> <div class="6eiwce4" id="blogContainer" style="font-size: 12px"><img id="paperPicArea0" style="display: none" src="http://imgcache.qq.com/ac/b.gif" alt="" /> <img id="paperPicArea" style="display: none" src="http://imgcache.qq.com/ac/b.gif" alt="" />//校验是否全由数字l成 <br /> [code] function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } [/code] <br /> //校验d名:(x)只能输入5-20个以字母开头、可带数字?#8220;_”?#8220;.”的字?<br /> [code] function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } [/code] <br /> //校验用户姓名Q只能输?-30个以字母开头的字串 <br /> [code] function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } }} //校验密码Q只能输?-20个字母、数字、下划线 [code] function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } [/code] <br /> //校验普通电(sh)话、传真号码:(x)可以“+”开_(d)除数字外Q可含有“-” <br /> [code] function isTel(s) { //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } [/code] <br /> //校验手机L(fng)Q必M数字开_(d)除数字外Q可含有“-” <br /> [code] function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } [/code] <br /> //校验邮政~码 <br /> [code] function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true } [/code] <br /> //校验搜烦关键?<br /> [code] function isSearch(s) { var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\] [\]\{\}:;'\,.<>?]{0,19}$/; if (!patrn.exec(s)) return false return true } function isIP(s) //by zergling { var patrn=/^[0-9.]{1,20}$/; if (!patrn.exec(s)) return false return true } [/code] <br /> 正则表达?<br /> [code] "^\\d+$"  //非负整数Q正整数 + 0Q?"^[0-9]*[1-9][0-9]*$"  //正整?"^((-\\d+)|(0+))$"  //非正整数Q负整数 + 0Q?"^-[0-9]*[1-9][0-9]*$"  //负整?"^-?\\d+$"    //整数 "^\\d+(\\.\\d+)?$"  //非负点敎ͼ正QҎ(gu) + 0Q?"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正QҎ(gu) "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正点敎ͼ负QҎ(gu) + 0Q?"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负QҎ(gu) "^(-?\\d+)(\\.\\d+)?$"  //点?"^[A-Za-z]+$"  //?6个英文字母组成的字符?"^[A-Z]+$"  //?6个英文字母的大写l成的字W串 "^[a-z]+$"  //?6个英文字母的写l成的字W串 "^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符?"^\\w+$"  //由数字?6个英文字母或者下划线l成的字W串 "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址 "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url "^[A-Za-z0-9_]*$" [/code] <br /> 正则表达式用详?<br /> ?<br /> 单的_(d)正则表达式是一U可以用于模式匹配和替换的强有力的工兗其作用如下Q?<br /> 试字符串的某个模式。例如,可以对一个输入字W串q行试Q看在该字符串是否存在一个电(sh)话号码模式或一个信用卡L(fng)模式。这UCؓ(f)数据有效性验证?<br /> 替换文本。可以在文档中用一个正则表辑ּ来标识特定文字,然后可以全部其删除Q或者替换ؓ(f)别的文字?<br /> Ҏ(gu)模式匚w从字W串中提取一个子字符丌Ӏ可以用来在文本或输入字D中查找特定文字?<br /> 基本语法 <br /> 在对正则表达式的功能和作用有了初步的了解之后Q我们就来具体看一下正则表辑ּ的语法格式?<br /> 正则表达式的形式一般如下:(x)   <br /> /love/  其中位于“/”定界W之间的部分是要在目标对象中q行匚w的模式。用户只要把希望查找匚w对象的模式内Ҏ(gu)?#8220;/”定界W之间即可。ؓ(f)了能够用户更加灉|的定制模式内容,正则表达式提供了专门?#8220;元字W?#8221;。所谓元字符是指那些在正则表达式中hҎ(gu)意义的专用字W,可以用来规定其前导字W(即位于元字符前面的字W)在目标对象中的出现模式?<br /> 较ؓ(f)常用的元字符包括Q?“+”Q?“*”Q以?“?”?<br /> “+”元字W规定其前导字符必须在目标对象中q箋出现一ơ或多次?<br /> “*”元字W规定其前导字符必须在目标对象中出现零次或连l多ơ?<br /> “?”元字W规定其前导对象必须在目标对象中q箋出现零次或一ơ?<br /> 下面Q就让我们来看一下正则表辑ּ元字W的具体应用?<br /> /fo+/  因ؓ(f)上述正则表达式中包含“+”元字W,表示可以与目标对象中?“fool”, “fo”, 或?“football”{在字母f后面q箋出现一个或多个字母o的字W串相匹配?<br /> /eg*/  因ؓ(f)上述正则表达式中包含“*”元字W,表示可以与目标对象中?“easy”, “ego”, 或?“egg”{在字母e后面q箋出现零个或多个字母g的字W串相匹配?<br /> /Wil?/  因ؓ(f)上述正则表达式中包含“Q?#8221;元字W,表示可以与目标对象中?“Win”, 或?#8220;Wilson”,{在字母i后面q箋出现零个或一个字母l的字W串相匹配?<br /> 有时候不知道要匹配多字W。ؓ(f)了能适应q种不确定性,正则表达式支持限定符的概c(din)这些限定符可以指定正则表达式的一个给定组件必要出现多少ơ才能满_配?<br /> {n} n 是一个非负整数。匹配确定的 n ơ。例如,'o{2}' 不能匚w "Bob" 中的 'o'Q但是能匚w "food" 中的两个 o?<br /> {n,} n 是一个非负整数。至匹?n ơ。例如,'o{2,}' 不能匚w "Bob" 中的 'o'Q但能匹?"foooood" 中的所?o?o{1,}' {h(hun)?'o+'?o{0,}' 则等价于 'o*'?<br /> {n,m} m ?n 均ؓ(f)非负整数Q其中n <= m。最匹?n ơ且最多匹?m ơ。例如,"o{1,3}" 匹?"fooooood" 中的前三?o?o{0,1}' {h(hun)?'o?'。请注意在逗号和两个数之间不能有空根{?<br /> 除了元字W之外,用户q可以精指定模式在匚w对象中出现的频率。例如,/jim {2,6}/ 上述正则表达式规定字Wm可以在匹配对象中q箋出现2-6ơ,因此Q上q正则表辑ּ可以同jimmy或jimmmmmy{字W串相匹配?<br /> 在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字W的使用方式?<br /> [code] \sQ用于匹配单个空格符Q包括tab键和换行W; \SQ用于匹配除单个I格W之外的所有字W; \dQ用于匹配从0?的数字; \wQ用于匹配字母,数字或下划线字符Q?\WQ用于匹配所有与\w不匹配的字符Q?. Q用于匹配除换行W之外的所有字W?[/code] <br /> Q说明:(x)我们可以把\s和\S以及(qing)\w和\W看作互ؓ(f)逆运) <br /> 下面Q我们就通过实例看一下如何在正则表达式中使用上述元字W?<br /> /\s+/ 上述正则表达式可以用于匹配目标对象中的一个或多个I格字符?<br /> /\d000/ 如果我们手中有一份复杂的财务报表Q那么我们可以通过上述正则表达式轻而易丄查找到所有总额辑֍元的N?<br /> 除了我们以上所介绍的元字符之外Q正则表辑ּ中还h另外一U较为独特的专用字符Q即定位W。定位符用于规定匚w模式在目标对象中的出C|?较ؓ(f)常用的定位符包括Q?“^”, “$”, “\b” 以及(qing) “\B”?<br /> [code] “^”定位W规定匹配模式必d现在目标字符串的开?“$”定位W规定匹配模式必d现在目标对象的结?“\b”定位W规定匹配模式必d现在目标字符串的开头或l尾的两个边界之一 “\B”定位W则规定匚w对象必须位于目标字符串的开头和l尾两个边界之内Q?卛_配对象既不能作ؓ(f)目标字符串的开_(d)也不能作为目标字W串的结?[/code] <br /> 同样Q我们也可以?#8220;^”?#8220;$”以及(qing)“\b”?#8220;\B”看作是互为逆运的两组定位W。D例来_(d)(x) /^hell/ 因ؓ(f)上述正则表达式中包含“^”定位W,所以可以与目标对象中以 “hell”, “hello”?#8220;hellhound”开头的字符串相匚w?/ar$/ 因ؓ(f)上述正则表达式中包含“$”定位W,所以可以与目标对象中以 “car”, “bar”?“ar” l尾的字W串相匹配?/\bbom/ 因ؓ(f)上述正则表达式模式以“\b”定位W开_(d)所以可以与目标对象中以 “bomb”, ?“bom”开头的字符串相匚w?man\b/ 因ؓ(f)上述正则表达式模式以“\b”定位W结,所以可以与目标对象中以 “human”, “woman”?“man”l尾的字W串相匹配?<br /> Z能够方便用户更加灉|的设定匹配模式,正则表达式允怋用者在匚w模式中指定某一个范围而不局限于具体的字W。例如:(x) <br /> [code] /[A-Z]/  上述正则表达式将?x)与从A到Z范围内Q何一个大写字母相匚w?/[a-z]/  上述正则表达式将?x)与从a到z范围内Q何一个小写字母相匚w?/[0-9]/  上述正则表达式将?x)与??范围内Q何一个数字相匚w?/([a-z][A-Z][0-9])+/ 上述正则表达式将?x)与M由字母和数字l成的字W串Q如 “aB0” {相匚w?[/code] <br /> q里需要提醒用h意的一点就是可以在正则表达式中使用 “()” 把字W串l合在一赗?#8220;()”W号包含的内容必d时出现在目标对象中。因此,上述正则表达式将无法与诸?“abc”{的字符串匹配,因ؓ(f)“abc”中的最后一个字Wؓ(f)字母而非数字?<br /> 如果我们希望在正则表辑ּ中实现类似编E逻辑中的“?#8221;q算Q在多个不同的模式中任选一个进行匹配的话,可以使用道W?“|”。例如:(x)/to|too|2/ 上述正则表达式将?x)与目标对象中?“to”, “too”, ?“2” 相匹配?<br /> 正则表达式中q有一个较为常用的q算W,卛_定符 “[^]”。与我们前文所介绍的定位符 “^” 不同Q否定符 “[^]”规定目标对象中不能存在模式中所规定的字W串。例如:(x)/[^A-C]/ 上述字符串将?x)与目标对象中除AQBQ和C之外的Q何字W相匚w。一般来_(d)?#8220;^”出现?“[]”内时p视做否定q算W;而当“^”位于“[]”之外Q或没有“[]”Ӟ则应当被视做定位W?<br /> 最后,当用户需要在正则表达式的模式中加入元字符Qƈ查找其匹配对象时Q可以用{义符“\”。例如:(x)/Th\*/  上述正则表达式将?x)与目标对象中?#8220;Th*”而非“The”{相匚w?<br /> 在构造正则表辑ּ之后Q就可以象数学表辑ּ一h求|也就是说Q可以从左至叛_ƈ按照一个优先序来求倹{优先如下Q?<br /> [code] 1Q\ 转义W?2Q?), (?:), (?=), [] 圆括号和Ҏ(gu)?3Q?, +, ?, {n}, {n,}, {n,m} 限定W?4Q^, $, \anymetacharacter 位置和顺?5Q|“?#8221;操作 [/code] <br /> 使用实例 <br /> 在JavaScript 1.2中带有一个功能强大的RegExp()对象Q可以用来进行正则表辑ּ的匹配操作。其中的test()Ҏ(gu)可以(g)验目标对象中是否包含匚w模式Qƈ相应的返回true或false?<br /> 我们可以使用JavaScript~写以下脚本Q验证用戯入的邮g地址的有效性?<br /> [code] <html> <head>   <script language="Javascript1.2">      <!-- start hiding      function verifyAddress(obj)      {       var email = obj.email.value;       var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;       flag = pattern.test(email);       if(flag)       {        alert(“Your email address is correct!”);        return true;       }       else        {         alert(“Please try again!”);         return false;         }       }      // stop hiding -->     </script>   </head>   <body>    <form onSubmit="return verifyAddress(this);">     <input name="email" type="text">     <input type="submit">     </form>   </body> </html> [/code] <br /> 正则表达式对?<br /> 本对象包含正则表辑ּ模式以及(qing)表明如何应用模式的标志?<br /> [code] 语法 1 re = /pattern/[flags] 语法 2 re = new RegExp("pattern",["flags"]) [/code] <br /> 参数 <br /> re <br /> 必选项。将要赋gؓ(f)正则表达式模式的变量名?<br /> Pattern <br /> 必选项。要使用的正则表辑ּ模式。如果用语?1Q用 "/" 字符分隔模式。如果用语法 2Q用引号模式引h?<br /> Flags <br /> 可选项。如果用语?2 要用引号?flag 引v来。标志可以组合用,可用的有Q?<br /> [code] g Q全文查扑և现的所?patternQ?i Q忽略大写Q?m Q多行查找) [/code] <br /> CZ <br /> 下面的示例创Z个包含正则表辑ּ模式?qing)相x志的对象(re)Q向(zhn)演C正则表辑ּ对象的用法。在本例中,作ؓ(f)l果的正则表辑ּ对象又用?match Ҏ(gu)中:(x) <br /> [code] function MatchDemo() { var r, re; // 声明变量?var s = "The rain in Spain falls mainly in the plain"; re = new RegExp("ain","g"); // 创徏正则表达式对象?r = s.match(re); // 在字W串 s 中查扑֌配?return(r); } [/code] <br /> q回|(x) ain,ain,ain,ain\\ <br /> 属?lastIndex 属?| source 属性\\ <br /> Ҏ(gu) compile Ҏ(gu) | exec Ҏ(gu) | test Ҏ(gu)\\ <br /> 要求 版本 3\\ <br /> 请参?RegExp 对象 | 正则表达式语?| String 对象\\ <br /> exec Ҏ(gu) <br /> 用正则表辑ּ模式在字W串中运行查找,q返回包含该查找l果的一个数l?<br /> rgExp.exec(str) <br /> 参数 <br /> rgExp <br /> 必选项。包含正则表辑ּ模式和可用标志的正则表达式对象?<br /> str <br /> 必选项。要在其中执行查扄 String 对象或字W串文字?<br /> 说明\\ <br /> 如果 exec Ҏ(gu)没有扑ֈ匚wQ则它返?null。如果它扑ֈ匚wQ则 exec Ҏ(gu)q回一个数l,q且更新全局 RegExp 对象的属性,以反映匹配结果。数l的0元素包含了完整的匚wQ而第1到n元素中包含的是匹配中出现的Q意一个子匚w。这相当于没有设|全局标志 (g) ?match Ҏ(gu)?<br /> 如果为正则表辑ּ讄了全局标志Qexec 从以 lastIndex 的值指C的位置开始查找。如果没有设|全局标志Qexec 忽略 lastIndex 的|从字W串的v始位|开始搜索?<br /> exec Ҏ(gu)q回的数l有三个属性,分别?input、index ?lastIndex。Input 属性包含了整个被查扄字符丌ӀIndex 属性中包含了整个被查找字符串中被匹配的子字W串的位|。LastIndex 属性中包含了匹配中最后一个字W的下一个位|?<br /> CZ\\ <br /> 下面的例子D例说明了 exec Ҏ(gu)的用法:(x) <br /> [code] function RegExpTest() { var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion()) if (ver >= 5.5){ // 试 JScript 的版本?var src = "The rain in Spain falls mainly in the plain."; var re = /\w+/g; // 创徏正则表达式模式?var arr; while ((arr = re.exec(src)) != null) document.write(arr.index + "-" + arr.lastIndex + arr + "\t"); } else{ alert("请?JScript 的更新版?); } } [/code] <br /> q回|(x)0-3The 4-8rain 9-11in 12-17Spain 18-23falls 24-30mainly 31-33in 34-37the 38-43plain <br /> test Ҏ(gu)\\ <br /> q回一?Boolean |它指出在被查扄字符串中是否存在模式?<br /> rgexp.test(str) <br /> 参数\\ <br /> rgexp <br /> 必选项。包含正则表辑ּ模式或可用标志的正则表达式对象?<br /> str <br /> 必选项。要在其上测试查扄字符丌Ӏ?<br /> 说明 <br /> test Ҏ(gu)(g)查在字符串中是否存在一个模式,如果存在则返?trueQ否则就q回 false?<br /> 全局 RegExp 对象的属性不?test Ҏ(gu)来修攏V?<br /> CZ <br /> 下面的例子D例说明了 test Ҏ(gu)的用法:(x) <br /> [code] function TestDemo(re, s) { var s1; // 声明变量?// (g)查字W串是否存在正则表达式?if (re.test(s)) // 试是否存在?s1 = " contains "; // s 包含模式?else s1 = " does not contain "; // s 不包含模式?return("'" + s + "'" + s1 + "'"+ re.source + "'"); // q回字符丌Ӏ?} [/code] <br /> 函数调用Qdocument.write (TestDemo(/ain+/ ,"The rain in Spain falls mainly in the plain.")); <br /> q回|(x)'The rain in Spain falls mainly in the plain.' contains 'ain+' <br /> match Ҏ(gu) <br /> 使用正则表达式模式对字符串执行查找,q将包含查找的结果作为数l返回。\\ <br /> stringObj.match(rgExp) <br /> 参数\\ <br /> stringObj <br /> 必选项。对其进行查扄 String 对象或字W串文字?<br /> rgExp <br /> 必选项。ؓ(f)包含正则表达式模式和可用标志的正则表辑ּ对象。也可以是包含正则表辑ּ模式和可用标志的变量名或字符串文字?<br /> 说明\\ <br /> 如果 match Ҏ(gu)没有扑ֈ匚wQ返?null。如果找到匹配返回一个数lƈ且更新全局 RegExp 对象的属性以反映匚wl果?<br /> match Ҏ(gu)q回的数l有三个属性:(x)input、index ?lastIndex。Input 属性包含整个的被查扑֭W串。Index 属性包含了在整个被查找字符串中匚w的子字符串的位置。LastIndex 属性包含了最后一ơ匹配中最后一个字W的下一个位|?<br /> 如果没有讄全局标志 (g)Q数l的 0 元素包含整个匚wQ而第 1 ?n 元素包含了匹配中曑և现过的Q一个子匚w。这相当于没有设|全局标志?exec Ҏ(gu)。如果设|了全局标志Q元?0 ?n 中包含所有匹配?<br /> CZ\\ <br /> 下面的示例演CZmatch Ҏ(gu)的用法:(x) <br /> [code] function MatchDemo() { var r, re; // 声明变量?var s = "The rain in Spain falls mainly in the plain"; re = /ain/i; // 创徏正则表达式模式?r = s.match(re); // 试匚w搜烦字符丌Ӏ?return(r); // q回W一ơ出?"ain" 的地斏V?} [/code] <br /> q回|(x)ain <br /> 本示例说明带 g 标志讄?match Ҏ(gu)的用法?<br /> [code] function MatchDemo() { var r, re; // 声明变量?var s = "The rain in Spain falls mainly in the plain"; re = /ain/ig; // 创徏正则表达式模式?r = s.match(re); // 试d配搜索字W串?return(r); // q回的数l包含了所?"ain" // 出现的四个匹配?} [/code] <br /> q回|(x)ain,ain,ain,ain <br /> 上面几行代码演示了字W串文字?match Ҏ(gu)的用法?<br /> [code] var r, re = "Spain"; r = "The rain in Spain".replace(re, "Canada"); return r; [/code] <br /> q回|(x)The rain in Canada <br /> search Ҏ(gu) <br /> q回与正则表辑ּ查找内容匚w的第一个子字符串的位置?<br /> stringObj.search(rgExp) <br /> 参数\\ <br /> stringObj <br /> 必选项。要在其上进行查扄 String 对象或字W串文字?<br /> rgExp <br /> 必选项。包含正则表辑ּ模式和可用标志的正则表达式对象?<br /> 说明 <br /> search Ҏ(gu)指明是否存在相应的匹配。如果找C个匹配,search Ҏ(gu)返回一个整数|指明q个匚w距离字符串开始的偏移位置。如果没有找到匹配,则返?-1?<br /> CZ\\ <br /> 下面的示例演CZ search Ҏ(gu)的用法?<br /> [code] function SearchDemo() { var r, re; // 声明变量?var s = "The rain in Spain falls mainly in the plain."; re = /falls/i; // 创徏正则表达式模式?r = s.search(re); // 查找字符丌Ӏ?return(r); // q回 Boolean l果?} [/code] <br /> q回|(x)18</div> <img src ="http://www.tkk7.com/joan/aggbug/222371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/joan/" target="_blank">joan</a> 2008-08-15 23:40 <a href="http://www.tkk7.com/joan/articles/222371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://microston.com" target="_blank">޹ۺϾƷ</a>| <a href="http://wwwee2.com" target="_blank">ҹƷƵ</a>| <a href="http://z88d.com" target="_blank">AV鶹Ʒ</a>| <a href="http://xsdjiagu.com" target="_blank">˳WWW</a>| <a href="http://43sihu.com" target="_blank">߹ۿ˳վҹ</a>| <a href="http://xbooktxt.com" target="_blank">ŷһëƬ</a>| <a href="http://116603a.com" target="_blank">žȾþƵ</a>| <a href="http://wenfaka.com" target="_blank">AV˵ù</a>| <a href="http://jomashopcn.com" target="_blank">Ƶһ߹ۿ</a>| <a href="http://86trader.com" target="_blank">JIZZձ</a>| <a href="http://jsky163.com" target="_blank">޹ƷAVþۺӰԺ</a>| <a href="http://732r.com" target="_blank">Ұ߹ۿ</a>| <a href="http://998wc.com" target="_blank">ҰһƵ </a>| <a href="http://wwwks2424.com" target="_blank">ҹAëƬƵ</a>| <a href="http://czxgjt.com" target="_blank">97þù޾Ʒ</a>| <a href="http://bobostrong31.com" target="_blank">v۵Ӱ</a>| <a href="http://xbooktxt.com" target="_blank">޾ƷĻ</a>| <a href="http://haigoumama.com" target="_blank">ձһ</a>| <a href="http://hh5151.com" target="_blank">24Сʱձwwwѵ</a>| <a href="http://gisdn.com" target="_blank">鶹ƷƵ</a>| <a href="http://sh-shule.com" target="_blank">þ99Ʒѿ</a>| <a href="http://142121.com" target="_blank">˳վ߹ۿ</a>| <a href="http://jgxsdst.com" target="_blank">þóѲ</a>| <a href="http://www-456446.com" target="_blank">Ƶ</a>| <a href="http://dstbxg.com" target="_blank">ӰһѾþþþþþþ </a>| <a href="http://www-554757.com" target="_blank">ͼƬУ԰С˵</a>| <a href="http://sdzhly.com" target="_blank">ĻƷþ</a>| <a href="http://bdyls.com" target="_blank">һþ</a>| <a href="http://hqshimo.com" target="_blank">޹ģ߲</a>| <a href="http://266hd.com" target="_blank">ŵ</a>| <a href="http://maomi02.com" target="_blank">޹Ƶ</a>| <a href="http://bj-tkld.com" target="_blank">ëƬƵ</a>| <a href="http://yu388.com" target="_blank">һƷƵ</a>| <a href="http://cqtchtwq.com" target="_blank">Ļһ </a>| <a href="http://huakangweicai.com" target="_blank">Ƭ߹ۿ</a>| <a href="http://www-34595.com" target="_blank">߹Ӱվ</a>| <a href="http://66661660.com" target="_blank">պӰ߹ۿվ </a>| <a href="http://jomashopcn.com" target="_blank">һ</a>| <a href="http://www2626cf.com" target="_blank">ձ޳ɸһ </a>| <a href="http://schygfz.com" target="_blank">þþþþùƷͬ </a>| <a href="http://xf002.com" target="_blank">պëƬ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>