js正则表达式实例(汇总)

转载来自:http://blog.csdn.net/lmb20056127/article/details/6455873

js正则表达式实例(汇总)

匹配结尾的数字
来源:如何用JAVASCRIPT 正则表达式取出字符串最后一组数字,谢谢

30CAC0040 取出40
3SFASDF92 取出92
正则如下://d+$/g

统一空格个数
来源:正则匹配空格的问题
字符串内字符键有空格,但是空格的数量可能不一致,通过正则将空格的个数统一变为一个。
例如:蓝色理想
变成:蓝色理想
aobert的正则:


判断字符串是不是由数字组成
来源:有没有简单的方法判断字符串由数字组成?
这个正则比较简单,写了一个测试


电话号码正则
来源:想问一下关于电话号码的正则判断
:求一个验证电话号码的JS正则
/^/d{3,4}-/d{7,8}(-/d{3,4})?$/
区号必填为3-4位的数字,区号之后用“-”与电话号码连接
^/d{3,4}-
电话号码为7-8位的数字
/d{7,8}
分机号码为3-4位的数字,非必填,但若填写则以“-”与电话号码相连接
(-/d{3,4})?

手机号码正则表达式
正则验证手机号,忽略前面的0,支持130-139,150-159。忽略前面0之后判断它是11位的。
cloeft的正则:
/^0*(13|15)/d{9}$/
^0*匹配掉开头任意数量的0。
由于手机号码是13任意数字9位,和15任意数字9位,所以可以用(13|15)/d{9}匹配。
测试代码如下:
function testReg(reg,str){
return reg.test(str);
}
var reg = /^0*(13|15)/d{9}$/;
var str = '13889294444';
var str2 = '12889293333';
var str3 = '23445567';
document.write(testReg(reg,str)+'
');
document.write(testReg(reg,str2)+'
');
document.write(testReg(reg,str3)+'
');

使用正则表达式实现删除字符串中的空格:
来源:请问JS中有没有去掉空格的函数
代码以及测试代码如下:

测试的结果如下:
length:11
ltrim length:10
rtrim length:10
trim length:9

限制文本框只能输入数字和小数点等等
来源:文本框输入限制的问题????
只能输入数字和小数点
var reg = /^/d*/.?/d{0,2}$/
开头有若干个数字,中间有0个或者一个小数点,结尾有0到2个数字。
只能输入小写的英文字母和小数点,和冒号,正反斜杠(:.//)
var reg = /[a-z/.////:]+/;
a-z包括了小写的英文字母,/.是小数点,//和//分别是左右反斜线,最后是冒号。整个组成一个字符
集和代码任一均可,最后在加上+,1或者多个。

替换小数点前内容为指定内容
来源:求一正则表达式!
请问怎么把这个字符串的小数点前面的字符替换为我自定义的字符串啊?
例如:infomarket.php?id=197 替换为test.php?id=197
应该可以把第一个点“.”之前的所有单词字符替换为test就可以了。我写的正则如下:

原帖的有点复杂,没太看明白。

只匹配中文的正则表达式
来源:关于上传的时候,只能选择中文名称的图片(是否可以用TOASCII方法呢?)
前两天看的《JavaScript开发王》里恰好有中文的unicode范围,正则如下:
/[/u4E00-/u9FA5/uf900-/ufa2d]/
写了一个简单的测试,会把所有的中文替换成“哦”。


返回字符串的中文字符个数
来源:有没返回中文字符字节的函数!
一般的字符长度对中文和英文都是不分别的如JS里的length,那么如何返回字符串中中文字符的个数
呢?guoshuang老师在原帖中给出了解决方案,我又没看懂……
不过我自己也想到了一个办法:先去掉非中文字符,再返回length属性。函数以及测试代码如下:

结果:
52
中文两个,数字三个,正确。
下面的测试也正确。
var str = "中文123tets@#!#%$#[][{}";
document.write(str.length+'
');
document.write(cLength(str));

正则表达式取得匹配IP地址前三段
来源:如何用正则取IP前3段
192.168.118.101,192.168.118.72, 192.168.118.1都替换成:192.168.118
只要匹配掉最后一段并且替换为空字符串就行了,正则如下:
//./d{1,3}$/
匹配结尾的.n,.nn或者.nnn。
测试代码如下:
function replaceReg(reg,str){
return str.replace(reg,'')
}
var reg = //./d{1,3}$/;
var str = '192.168.118.101';
var str2 = '192.168.118.72';
var str3 = '192.168.118.1';
document.write(replaceReg(reg,str)+'
');
document.write(replaceReg(reg,str2)+'
');
document.write(replaceReg(reg,str3)+'
');
相似的有,这个帖子里有一个验证IP地址的方法:求检验MAC地址的正则表达例子

匹配
      之间的内容
      来源:请教个正则的小问题吧
        safsf
          safsf
          safsf

      用正则可以得到
        起到下个
          之间的内容。
          正则如下:
          /
            [/s/S]+?
              /i
              首先匹配两侧的ul标签,中间的[/s/S]+?可以匹配一个或者多个任意字符,一定要非贪婪,否则会匹
                safsf
                  safsf


                  用正则表达式获得文件名
                  来源:C:/006.JPG
                  c:/images/tupian/006.jpg
                  可能是直接在盘符根目录下,也可能在好几层目录下,要求替换到只剩文件名。
                  xlez的正则如下:
                  /[^////]*[////]+/g
                  首先匹配非左右斜线字符0或多个,然后是左右斜线一个或者多个。形如“xxx/”或者“xxx/”或者“/”或
                  者“/”
                  函数以及测试代码:

                  注意,/需要转义。

                  绝对路径变相对路径
                  来源:讨论一个正则
                  转换
                  为:
                  其中网址可能改变,例如http://localhost等等。
                  cloudchen的正则:
                  /http:////[^//]+/
                  首先是http://,然后[^//]+找过1个或者多个非/字符,因为遇到第一个/表示已经到目录了,停止匹
                  配。
                  测试代码如下:


                  用户名正则
                  来源:求正则,急急呀!!
                  用于用户名注册,,用户名只能用中文、英文、数字、下划线、4-16个字符。
                  hansir和解决方案弄成正则:
                  /^[/u4E00-/u9FA5/uf900-/ufa2d/w]{4,16}$/
                  中文字符或者单词字符,4到16个。实现4到16结成到正则里的关键就是开始^和结束$,这就等于整
                  个字符串只能有这些匹配的内容,不能有多余的。
                  函数和测试代码如下:


                  匹配英文地址
                  来源:-求助- 正则问题
                  规则如下:
                  包含"点", "字母","空格","逗号","数字",但开头和结尾不能是除字母外任何字符。
                  [/.a-zA-Z/s,0-9]这个字符集就实现了字母,空格,逗号和数字。最终正则如下:
                  /^[a-zA-Z][/.a-zA-Z/s,0-9]*?[a-zA-Z]+$/
                  开头必须有字母,结束也必须是一个以上字母。测试代码如下:


                  正则匹配价格
                  来源:为什么这个正则不起作用啊?急啊?
                  价格的格式应该如下:
                  开头数字若干位,可能有一个小数点,小数点后面可以有两位数字。hansir给出的对应正则如下:
                  /^(/d*/./d{0,2}|/d+).*$/
                  hansir给出的测试代码如下:
                  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



                  无标题文档







                  身份证号码的匹配
                  来源:关于正则的,大家帮帮忙,急,在线等
                  身份证号码可以是15位或者是18位,其中最后一位可以是X。其它全是数字,正则如下:
                  /^(/d{14}|/d{17})(/d|[xX])$/
                  开头是14位或者17位数字,结尾可以是数字或者是x或者是X。
                  测试代码如下:


                  要求文本有指定行数
                  来源:[求助]求一句正则表达式的写法
                  匹配至少两行的字符串,每行都为非空字符。
                  只要匹配到[/n/r]就表示有换行了,再保证换行的两段都不是空字符就可以了。正则如下:
                  //S+?[/n/r]/S+?/i
                  这个正则的应用应该是用在textarea里,如果是如下要求:可以支持所有字符,中间可带空格,可以
                  包括英文、数字、中文、标点
                  这样的话,只要针对空格再改一下就行了。(按照非空的要求,上面有不能匹配“字符+空格+换行+字
                  符”的字符串)。修改如下:
                  //S+?/s*?[/n/r]/s*?/S+?/i

                  单词首字母大写
                  来源:求个正则,处理英文单词或词组的
                  每单词首字大写,其他小写。如blue idea转换为Blue Idea,BLUE IDEA也转换为Blue Idea
                  cloeft的正则:
                  //b(/w)|/s(/w)/g
                  所谓“首字母”包括两种情况:第一种是边界(开头)的单词字符,一种是空格之后的新单词的第一个字
                  母。测试代码如下:


                  正则验证日期格式
                  来源:YYYY-MM-DD的正则怎样写啊?
                  yyyy-mm-dd格式
                  正则如下:
                  /^/d{4}-/d{1,2}-/d{1,2}$/
                  4位数字,横线,1或者2位数字,再横线,最后又是1或者2位数字。
                  测试代码如下:


                  第二种格式:来源:求一正则表达式
                  yyyy-mm-dd

                  yyyy/mm/dd
                  用“或”简单地修改一下就行了。
                  /^/d{4}(-|//)/d{1,2}(-|//)/d{1,2}$/

                  去掉文件的后缀名
                  来源:求一个正则
                  www.abc.com/dc/fda.asp变为www.abc.com/dc/fda
                  如果文件后缀已知的话这个问题就非常简单了,正则如下:
                  //.asp$/
                  匹配最后的.asp而已,测试代码如下:

                  如果文件名未知的话就用这个正则://./w+$/,测试代码如下:


                  验证邮箱的正则表达式
                  来源:找JAVASCRIPT写的表单检查代码!
                  fuchangxi的正则:
                  /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(/.[a-zA-Z0-9_-])+/
                  开始必须是一个或者多个单词字符或者是-,加上@,然后又是一个或者多个单词字符或者是-。然后是
                  点“.”和单词字符和-的组合,可以有一个或者多个组合。

                  我不太了解邮箱的具体规则。感觉这个正则比较简单,EMAIL校验正则讨论求解里有比较详细的邮
                  箱正则讨论。

                  匹配源代码中的链接
                  来源:正则
                  能够匹配HTML代码中链接的正则。
                  原帖正则:/.+?/g
                  感觉有点严格,首先要
                  有,而且href属性可以是一个或者多个除换行外任意字符(非
                  贪婪)。后面是.+?,一个或者多个除换行外任意字符(非贪婪),再加上结束标签。
                  有个问题,如果a的起始标签最后有空格,或者除了href还有其它属性的话,上面的正则就不能匹配这
                  个链接了。
                  例如:
                  ……多了个空格。
                  ……前面有属性。
                  ……
                  重写正则:/
                  [/s/S]*?/
                  思路如下:首先要有 第一个(/s*/w*?=".+?")*
                  可以匹配一个属性,属性前面可能有或者没有多余的空格,用/s*匹配;属性名肯定是单词字符,
                  用/w*?匹配;=".+?"就是匹配属性值了非换行字符若干个;整个括号外面加个*表示可能有任意多个
                  属性。
                  (/s*href=".+?")
                  匹配href,它也是一个属性,所以只要把上面子正则表达式中的/w修改为href=就行了。
                  (/s*/w*?=".+?")*重复第一个子正则表达式,再次接受任意个属性。
                  /s*>,属性最后再加上若干个空格和>。
                  [/s/S]*?,链接的文字,可能有任何字符组成,若干个,非贪婪。
                  最后是结束标签。
                  补充:属性名和=之间,以及=和属性值之间也可能有空格。所以要再加上几个/s*。
                  最后的实例代码如下:

                  会把所有的链接在页面直接显示出来。注意,
                  本帖遗留问题:如何执行从右到左的匹配。貌似JS 或者VBS 没有提供这个功能2、JS 或
                  者VBS 不支持后行断言。。用什么方法实现这个功能。

xyyy 2009-06-27 07:52
正则判断标签是否闭合
来源:求助超难!正则表达式如何判断一个标签是否闭合
例如:

p的内容,同样也是没闭合的标签。
从简单的正则开始,先匹配起始标签
/<[a-z]+/i
再加上若干属性:
/<[a-z]+(/s*/w*?/s*=/s*".+?")*/i
下面就到关键点了,标签的闭合。标签可能有两种方式闭合,
或者是

xxx


(/s*//>)
匹配img类的结束,即/>。
(/s*?>[/s/S]*?)
匹配/p类标签的结束标签。>是其实标签末尾,之后是标签内容若干个任意字符,最后的就是
结束标签了。
加上一个或就可以解决了,最后的完整正则表达式:
整个正则:/<([a-z]+)(/s*/w*?/s*=/s*".+?")*(/s*?>[/s/S]*?|/s*//>)/i
拿这个正则,只要匹配到了就表示闭合,没匹配到则没有闭合。不过没有考虑相同标签嵌套的问题,例

aaaaaa
test

也被判断为合格,可以通过把最后的匹配p类结束标签写成子正则表达式,并且更改为非贪心,然后在
匹配结果中检查是否成对。正则如下:
/<([a-z]+)(/s*/w*?/s*=/s*".+?")*(/s*?>[/s/S]*?()+|/s*//>)/i
用正则获得指定标签的内容
来源:求一正则
有如下代码:

蓝色理想


界面设计测试规范


《古典写实美女》漫画教程


安远――消失的光年


asp.net 2.0多语言网站解决方案

要求匹配item里的title而不匹配channel里的title。
基本正则:
/[/s/S]*?<//title>/gi <br> 首先是title标签,内容为任意字符若干个,然后是title结束标签。这个正则已经能匹配到所有的title标 <br> 签。 <br> 首先,我简单地修改了一下原正则: <br> /<title>[^<>]*?<//title>/gi, <br> 因为title里面不应该再嵌有其它标签,这个正则同样是匹配所有标题的内容,最后再加上不去匹 <br> 配channel中的title。整个正则如下: <br> /<title>[^<>]*?<//title>(?!/s*<//channel>)/gi <br> (?!/s*<//channel>)表示要匹配字符串的后面不能跟着若干个空格和一个channel的结束标签。 <br> 原帖里有很方便的测试工具,这里就不给测试代码了。 <br><br><strong>正则判断是否为数字与字母的混合</strong> <br> 来源:关于正则 <br> 不能小于12位,且必须为字母和数字的混合。 <br> 验证字符串包含数字简单,验证字符串包含字母也简单,验证字符串不包含其它字符也简单,可以用这 <br> 三个正则分别检查一次字符串,逻辑运算出最终结果。 <br> 但是怎么能把这些功能写进一个正则表达式里呢?这个问题真有点伤脑筋。 <br> 下面是lexrus的正则: <br> /^([a-z]+(?=[0-9])|[0-9]+(?=[a-z]))[a-z0-9]+$/ig <br> 思路非常的清晰啊: <br> [a-z]+(?=[0-9]) <br> 字母开头,后面必须紧跟着数字。 <br> [0-9]+(?=[a-z] <br> 数字开头,后面必须紧跟着字母。 <br> [a-z0-9]+ <br> 后面的字符只要是数字或者字母就可以了。经过测试,发现不好使,123dd会被识别为不合 <br> 法,dd123则为合法,可见“数字开头,紧跟字母”的正则没有起作用。测试代码如下: <br> <script type="text/javascript"> <br> function istrue(str){ <br> var reg=/^([a-z]+(?=[0-9])|[0-9]+(?=[a-z]))[a-z0-9]+$/ig; <br> return reg.test(str); <br> } <br> var str = 'AaBc'; <br> var str2 = 'aaa123'; <br> var str3 = '123dd'; <br> var str4 = '1230923403982'; <br> document.write(istrue(str)+'<br />'); <br> document.write(istrue(str2)+'<br />'); <br> document.write(istrue(str3)+'<br />'); <br> document.write(istrue(str4)+'<br />'); <br> </script> <br> 结果为: <br> false,true,false,false <br> 结果中的第三个,将'123dd'判断为非法是错误的。刚开始以为是g的问题,去掉了还是不好使。应该 <br> 是浏览器bug,我认为lexrus的正则是正确的,可能是浏览器无法处理或”|”的两边都包含正向预 <br> 查(?=)。 <br> 修改之后的正则如下: <br> /^(([a-z]+[0-9]+)|([0-9]+[a-z]+))[a-z0-9]*$/i <br> 意思和上面差不多,但是没有使用正向预查,测试代码如下: <br> <script type="text/javascript"> <br> function istrue(str){ <br> var reg=/^(([a-z]+[0-9]+)|([0-9]+[a-z]+))[a-z0-9]*$/i; <br> return reg.test(str); <br> } <br> var str = 'AaBc'; <br> var str2 = 'aaa123'; <br> var str3 = '123dd'; <br> var str4 = '1230923403982'; <br> document.write(istrue(str)+'<br />'); <br> document.write(istrue(str2)+'<br />'); <br> document.write(istrue(str3)+'<br />'); <br> document.write(istrue(str4)+'<br />'); <br> </script> <br> 结果为 <br> false,true,true,false <br> 正确。</td> </tr> </tbody> </table></td> </tr> </tbody> </table> <br> <table class="i_table" border="0" align="center"> <tbody> <tr> <td> <table border="0"> <tbody> <tr class="head"> <td><strong>xyyy</strong></td> <td class="smalltxt" align="right">2009-06-27 07:52</td> </tr> <tr> <td class="tpc_content" colspan="2">空格与英文同时存在 <br> 来源:正则问题请指教啊! <br> 匹配英文以及空格,要求必须既有英文字母又有空格。 <br> 这个思路和上面的差不多,只要把数字改成空格就可以了。正则如下: <br> /^(([a-z]+/s+)|(/s+[a-z]+))[a-z/s]*$/i <br> 英文开头加空格,或者是空格开头加英文,后面可以是英文或者空格。测试代码如下: <br> <script type="text/javascript"> <br> function istrue(str){ <br> var reg=/^(([a-z]+/s+)|(/s+[a-z]+))[a-z/s]*$/i; <br> return reg.test(str); <br> } <br> var str = 'asdf'; <br> var str2 = 'sadf sdf'; <br> var str3 = 'asdf '; <br> document.write(istrue(str)+'<br />'); <br> document.write(istrue(str2)+'<br />'); <br> document.write(istrue(str3)+'<br />'); <br> </script> <br> 利用这个思路也可以实现英文空格英文,英文单词多于两个的匹配。同样,也可以把英文字母换成单词 <br> 字符/w。 <br><strong>显示或者保存正则表达式匹配的部分内容</strong> <br> 有如下电话号码: <br> 13588888333 <br> 13658447322 <br> 13558885354 <br> 13587774654 <br> 13854554786 <br> 要求,要求只匹配135开头的电话,但是匹配结果只保留135后面的数字。 <br> 由于JavaScript里的正则不支持(?=xx)xxx的模式,只支持xxx(?=xx)的模式。所以只能将135后面 <br> 的内容作为一个子正则表达式匹配的内容,然后再在后面引用。 <br> Carl给出的函数如下: <br> function f(phoneNumber) { <br> var pattern = /^(135)(/d{8})$/; <br> if(pattern.test(phoneNumber)) <br> return phoneNumber.replace(pattern,"$2"); <br> else <br> return "不是135打头的手机号码!"; <br> } <br> /^(135)(/d{8})$/ <br> 正则中,135作为开头表示第一个子正则表达式,第二个括号内的子正则表达式则匹配后面的8个数 <br> 字,然后在replace中使用$2就可以引用这个子正则表达式匹配的内容了。测试代码如下: <br> <script type="text/javascript"> <br> function f(phoneNumber) { <br> var pattern = /^(135)(/d{8})$/; <br> if(pattern.test(phoneNumber)) <br> return phoneNumber.replace(pattern,"$2"); <br> else <br> return "不是135打头的手机号码!"; <br> } <br> var arr = new Array( <br> "13588888333", <br> "13658447322", <br> "13558885354", <br> "13587774654", <br> "13854554786" <br> ); <br> for(var i = 0; i < arr.length; i++) <br> document.write(f(arr<em>)+'<br />'); <br> </script> <br><br><strong>正则表达式替换变量</strong> <br> 来源:求教正则 <br> 有一个数组: <br> var _A = ['A','B','C','D']; <br> 有一个有“变量”的字符串。 <br> var _B = '<ul><li>$0$< / li><li>$1$< / li><li>$2$< / li><li>$3$< / li></ul>'; <br> 说是变量,其实只是字符串中的特殊字符,例如$0$,就称这个为伪变量吧。 <br> 最后的要求就是使用正则获得下面这样一个字符串: <br> _C = '<ul><li>A< / li><li>B< / li><li>C< / li><li>D< / li></ul>'; <br> IamUE给出了代码: <br> <script type="text/javascript"> <br> var _A = ['A','B','C','D']; <br> var _B = '<ul><li>$0$< / li><li>$1$< / li><li>$2$< / li><li>$3$< / li></ul>'; <br> var reg=//$/d+/$/ig; <br> C=_B.replace(reg,function($1){ <br> var indexnum=$1.replace(//$/ig,""); <br> if (indexnum<_A.length) <br> {return _A[indexnum];} <br> else{return ""} <br> }); <br> alert(C); <br> </script> <br> 代码分析:看到代码之后感觉有点晕,首先,正则reg中没有任何的括号,应该是没有捕获内容的,那 <br> 么后面怎么又使用$1了引用了呢?通过alert测试,发现它是整个正则匹配的内容,而且不一定要写 <br> 作$1,可以写为$0,甚至是写为x都没关系,它总是整个匹配。 <br> 第一次,$1匹配到_B中的“$0$”,匿名函数中将它的$去掉,变成了0,检查是否越界之后,用这 <br> 个0作为下标去访问数组_A。 <br> 由于正则reg定义了g属性,所以会继续替换$1$、$2$等等。步骤都和上面一样。 <br><br><strong>正则替换指定属性中的文本</strong> <br> 来源:怎样用正则来查找替换? <br> 有如下代码: <br> <td align="center"><img src="../photo/ccg/thumbnails/ <br> O'Malley's West_jpg.gif" border="0" <br> ><br> <br> O'Malley's West</td> <br> 要求将所有onclick属性中的’替换成/’,也就是将单引号转义。 <br> 首先,需要匹配onclick属性: <br> /onclick/s*=/s*".+?"/ig <br> 然后再将所有的’都替换成/’就可以了。整个测试的代码如下: <br> <script type="text/javascript"> <br> <!-- <br> function $(id) { <br> return document.getElementById(id); <br> } <br> function replace() { <br> $("txtDes").value = $("txtSrc").value.replace(/onclick/s*=/s*".+?"/ig, function (m) { <br> return m.replace(//'/g, "[url=file://]<span>//'</span>[/url]"); <br> }); <br> } <br> //--> <br> </script> <br> <textarea id="txtSrc" rows="15" cols="80"> <br> <td align="center"><img src="../photo/ccg/thumbnails/O'Malley's West_jpg.gif" <br> border="0" ><br> <br> O'Malley's West</td> <br> <td align="center"><img src="../photo/lag/thumbnails/Coach's Bar & Grill_jpg.gif" <br> border="0" ><br> <br> Coach's Bar & Grill</td> <br> <td align="center"><img src="../photo/pnx/thumbnails/Betty's Burger (Hamburger <br> Mary's)_jpg.gif" border="0" ><br> <br> Betty's Burger (Hamburger Mary's)</td> <br> </textarea> <br> <br/> <br> <input type="button" value=" replace " /> <br> <br/> <br> <textarea id="txtDes" rows="15" cols="80"> <br> </textarea> <br><br><strong>将阿拉伯数字替换为中文大写形式</strong> <br> 来源:正则问题 <br> 将123替换成壹贰叁。 <br> 只要匹配一个数字就可以了,测试代码如下(如果显示为乱码就调整一下浏览器的字符编码): <br> function replaceReg(reg,str){ <br> return str.replace(reg,function(m){return arr[m];}) <br> } <br> arr=new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); <br> var reg = //d/g; <br> var str = '13889294444'; <br> var str2 = '12889293333'; <br> var str3 = '23445567'; <br> document.write(replaceReg(reg,str)+'<br />'); <br> document.write(replaceReg(reg,str2)+'<br />'); <br> document.write(replaceReg(reg,str3)+'<br />'); <br><br><strong>替换文本中的URL为链接</strong> <br> 来源:求一链接替换正则 <br> 将一个用户输入的一段文字中的url替换成可以点击的link地址。例如:<span>http://www.blueidea.com</span>可 <br> 以替换成http://www.cctv.com <br> 或<a href="<span>http://www.cctv.com">http://www</span>. blueidea.com</a>. <br> 这个正则的关键就在于匹配链接,匹配之后,在两边加上a标签和属性不是问题。 <br> /http:////[/w-]*(/.[/w-]*)+/ig <br> 首先匹配http://。 <br> [/w-]*是可能的www和bbs等。 <br> /.[/w-]*匹配.xxx形式,至少有一个。 <br> 测试代码如下: <br> <script type="text/javascript"> <br> function replaceReg(reg,str){ <br> return str.replace(reg,function(m){return '<a href="'+m+'">'+m+'</a>';}) <br> } <br> var reg = /http:////[/w-]*(/.[/w-]*)+/ig; <br> var str = '将一个用户输入的一段文字中的url替换成可以点击的link地址。测试一 <br> 下:<span>http://www.blueidea.com</span>紧接着中文,还有<span>http://bbs.blueidea.com</span> is very <br> good!http://blueidea.com!最后在看看带.cn的:<span>http://www.sina.com.cn</span>呵呵。'; <br> document.write(replaceReg(reg,str)+'<br />'); <br> </script> <br><br><strong>从HTML代码段删除指定标签极其内容</strong> <br> 来源:关于正则的问题 <br> 在一段代码中去除<script ...... /script>, <head>...</head>,<%.....%>等代码块 <br> 隆的正则: <br> /<(script|meta|%)[/s/S]*?//(script|meta|%)>/ <br> 试了一下,匹配如下文本正常: <br> <script type="text/javascript"> <br> 我是要被删除的脚本 <br> </script> <br> 哎。就剩下我了。 <br> 但是,如果使用类似的正则: <br> /<(script|head|%)[/s/S]*?//(script|head|%)>/ig <br> 匹配有嵌套的标签: <br> <head> <br> <script type="text/javascript"> <br> 我是要被删除的脚本 <br> </script> <br> </head> <br> 哎。就剩下我了。 <br> 实际匹配的内容是: <br> <head> <br> <script type="text/javascript"> <br> 我是要被删除的脚本 <br> </script> <br> 这是因为[/s/S]*?里的非贪婪造成的。可以使用JavaScript正则里的反向引用来解决这个问题,如果 <br> 起始标签匹配了head,那么结束标签也必须是head。最后的正则如下: <br> /<(script|head|%)[/s/S]*?///1>/ig <br><br> 用正则给文本分段 <br> 来源:怎样用正则分段落 <br> 源代码:[title]标题一[/title]内容一232323sdfga [title]标题二[/title]内容二2232323 [title]标题 <br> 三[/title]内容三2232323 <br> 要把文本分段成如下格式: <br> 一、[title]标题一[/title]内容一232323sdfga <br> 二、[title]标题二[/title]内容二2232323 <br> 三、[title]标题三[/title]内容三2232323 <br> 只要用正则匹配title就可以了,所以正则比较简单 <br> //[title/]/ig <br> 至于开始的的汉字序号,只要一个数组就解决了,最终代码如下: <br> <script type="text/javascript"> <br> function replaceReg(reg,str){ <br> var mark =0; <br> return str.replace(reg,function(m){mark++;return '<br />'+arr[mark]+'、'+m;}) <br> } <br> var arr = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]; <br> var reg = //[title/]/ig; <br> var str = '[title]标题一[/title]内容一232323sdfga [title]标题二[/title]内容二2232323 [title]标 <br> 题三[/title]内容三2232323'; <br> document.write(replaceReg(reg,str)+'<br />'); <br> </script></em></td> </tr> </tbody> </table></td> </tr> </tbody> </table> <br> <table class="i_table" border="0" align="center"> <tbody> <tr> <td> <table border="0"> <tbody> <tr class="head"> <td><strong>xyyy</strong></td> <td class="smalltxt" align="right">2009-06-27 07:53</td> </tr> <tr> <td class="tpc_content" colspan="2">转换源代码中的标签 <br> 来源:一个正则上的问题 <br> 将代码中的HTML标签img转换为。 <br> /<img(?:/s*/w*?/s*=/s*".+?")*?/s*src/s*=/s*"(.+?)"(?:/s*/w*?/s*=/s*".+?")*/s*>/ig <br> 这段正则和匹配链接标签的正则基本一样,修改如下,标签名img,没有结束标签而是>结束。 <br> 测试代码如下: <br> <script type="text/javascript"> <br> function replaceReg(reg,str){ <br> return str.replace(reg,'') <br> } <br> var reg = <br> /<img(?:/s*/w*?/s*=/s*".+?")*?/s*src/s*=/s*"(.+?)"(?:/s*/w*?/s*=/s*".+?")*/s*>/ <br> ig; <br> var str = '我就是传说中的图片了<img src="URL">哎。'; <br> document.write(replaceReg(reg,str)+'<br />'); <br> </script> <br> 第二个是替换object代码嵌入的flash代码替换为 <div id="player_1"> 点击播放flash </div> 。 <br> 针对原文的正则如下: <br> /<object[/s/S]*?src=([/s/S]+?)(?=/s)[/s/S]*<//object>/i <br> 如果是所有的属性都有双引号的话正则也需要修改。 <br> 测试如下: <br> <script type="text/javascript"> <br> function replaceReg(reg,str){ <br> return str.replace(reg,' <div id="player_2"> 点击播放flash </div> ') <br> } <br> var reg = /<object[/s/S]*?src=([/s/S]+?)(?=/s)[/s/S]*<//object>/i; <br> var str = '<object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 <br> codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/ <br> swflash.cab#version=5,0,0,0 width=255 height=250><param name=movie <br> value=url><param name=quality value=high><embed src=url quality=high <br> pluginspage=http://www.macromedia.com/shockwave/download/ <br> index.cgi?P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash <br> width=255 height=250></embed></object>'; <br> document.write(replaceReg(reg,str)+'<br />'); <br> </script> <br><strong>给属性添加双引号</strong> <br> 来源:请教正则表达式高手 <br> 给HTML标签中的属性添加双引号。 <br> <a href=xxx>改为:<a href="xxx"> <br> LeXRus的第一个正则如下: <br> /(?!/</w+)(/s+/w+)/=([^>/"/s]+)/ig <br> 第一个括号没看明白,JS应该是不支持。所以我擅自给删掉了,剩下的正则如下: <br> /(/s+/w+)/=([^>/"/s]+)/ig <br> 第一个括号里的/s+/w+匹配的是属性名。 <br> 然后是=,不用转义。 <br> 第二个括号里的[^>/"/s]+匹配属性值。不匹配>”和空格。这里的引号不用转义。在意思不改变的情 <br> 况下,稍微改了改,正则如下: <br> /(/s+/w+)=([^>"/s]+)/ig <br> 需要注意的是这个正则不匹配=两边有空格的属性,例如href = xxx。相匹配的话就改成: <br> /(/s+/w+)/s*=/s*([^>"/s]+)/ig <br> 代码: <br> str=str.replace(/(?!/</w+)(/s+/w+)/=([^>/"/s]+)/ig,'$1="$2"'); <br> 其中’$1=”$2”’就实现了给属性值添加上双引号。不过ncs指出了这个正则替换的几个问题,一是上面 <br> 的空格问题,二是如果非标签内部有等号,且前面又恰巧有空白字符的话,它将会被误识别为属性,例 <br> 如: <br> <a href=xxx target=yyy title = asdfasf> test=sd <br> 里面的test=sd也会被匹配。三是如果属性原来使用了单引号,会被再包上一层双引号…… <br> 来看看LeXRus前辈的新正则替换方法: <br> str=str.replace(/(?!</w+)(/s+/w+)/s*=/s*([^>/"/s]+)(?=[^>]*>)/ <br> ig,'$1="$2"').replace(//"/'([^/'/"]+)/'/"/ig,'/"$1/"'); <br> 先来看第一个正则: <br> / (/s+/w+)/s*=/s*([^>"/s]+)(?=[^>]*>)/ig <br> 结尾新添的(?=[^>]*>)意在解决普通文本中有等号被误识别为属性的问题: <br> <a href=xxx target=yyy title = asdfasf> test=sd <br> 就没问题了,但是 <br> <a href=xxx target=yyy title = asdfasf> test=sd<tag>又一个标签</tag> <br> 中的test=sd<tag>又会被识别为属性。 <br> 我觉得改成下面的正则就没问题了: <br> /(/s+/w+)/s*=/s*([^<>"/s]+)(?=[^<>]*>)/ig <br> 分别在第二个括号的字符集合和最后的反向预查的字符集合中添加了一个<。 <br> 下面再来分析第二个正则, <br> //"/'([^/'/"]+)/'/"/ig <br> 这个正则用于匹配双引号,单引号多层嵌套的情况,同样,不用转义,修改正则如下: <br> /"'([^'"]*)'"/ig <br> 这样基本任务就完成了。测试代码如下: <br> <script> <br> function rp(str,trg){ <br> var reg1 = /(/s+/w+)/s*=/s*([^<>"/s]+)(?=[^<>]*>)/ig <br> var reg2 = /"'([^'"]*)'"/ig; <br> str=str.replace(reg1,'$1="$2"').replace(reg2,'/"$1/"'); <br> trg.value=str; <br> } <br> </script> <br> <textarea id="sou" style="width:100%"> <br> <a href = xxx name=aaa target=_blank title='asdfasf' οnclick=alert('blueidea')> <br> asfd=asfd <br> </textarea> <br> <input type="button" value="replace"/> <br> 原帖里LeXRus又提出了新问题: <br> hint=i am lexrus <br> 这样的属性会有问题,不过我感觉不加引号的话,属性值里就不可能有空格,否则会被识别为多个属性 <br> 了。不过看到最后ncs的回帖我就哭了: <br> οnclick=if(document.forms.length>0) <br> 这样的属性怎么办?大于号会被识别为标签结束……还是分离行为与文档吧。补充一下,其实修补一下 <br> 正则也可以解决,只要改成如下正则即可: <br> /(/s+/w+)/s*=/s*([^"/s]+)(?=[^<>]*>)/ig <br> 就是去掉第二个括号内字符集合里的<>。最后这个问题也解决。 <br><br><strong>给table加上tbody</strong> <br> 来源:通过正则表达式快速在后加上 <br> 有若干table,但是没有tbody。现在需要用正则批量加上。 <br> 匹配table结束标签</table>比较简单,在前面加上一个</tbody>就行了。 <br> 但是,匹配table的起始标签有点难度,因为可能有属性。不过之前匹配过链接了,这个也大同小异。 <br> 实例table代码如下: <br> <table width="100%" border="0" cellpadding="2" cellspacing="3"> <br> <table width="100%"> <br> 正则: <br> /<table/s(/s*/w*?/s*=/s*".+?")*?/s*?>/g <br> 匹配一个<table,在匹配若干个属性,最后只要再找到>就代表标签结束。 <br> 之后再replace一下,加上<tbody>就可以了。 <br><br> 去掉标签的所有属性 <br> 来源:正则表达式(DREAMWEAVER8) <br> <td style="width: 23px; height: 26px;" align="left">***</td> <br> 变成没有任何属性的 <br> <td>***</td> <br> 思路:非捕获匹配属性,捕获匹配标签,使用捕获结果替换掉字符串。正则如下: <br> /(<td)/s(?:/s*/w*?/s*=/s*".+?")*?/s*?(>)/ <br> 首先,td匹配掉了标签,后面可以用$1引用,后面的若干属性被(?:)匹配掉,而最后匹配的>则可以在 <br> 后面用$2引用。 <br> 示意代码: <br> str = str.replace(reg,’$1$2’); <br><br><strong>正则替换特定单词</strong> <br> 来源:正则表达式,拒绝几个单词的输入该怎样表达? <br> 要求禁止输入某几个单词,如果拒绝red,yellow,white。这个帖子到时不难,但是让我弄清楚了好几 <br> 个概念。 <br> 第一个,小心字符集合里的“或” <br> /[^red|yellow|white]/ <br> 这个正则里的所有或都没有意义,等同于: <br> /[^redyellowwhite]/ <br> 意思就是不能含有以下列出的所有字母。 <br> 正解: <br> /red|yellow|white/ <br> 第二个概念: <br> 只要整个正则匹配成功,无论子正则表达式是否匹配成功,括号都会捕捉。例如 <br> /(red)|(yellow)|(white)/ <br> 会捕捉到三个结果,尽管实际上最多只可能有一个括号匹配成功。但是只要有一个匹配到了,两外两个 <br> 也会记录空串。 <br><br><strong>指定文字高亮显示</strong> <br> 来源:如何用正则把网页中的指定的字高亮显示 <br> 请教正则表达式:如何替换搜索结果中的关键字为高亮显示? <br> 不劳而获一次,这个子虚乌有前辈已经给出了非常好的解决方案:我直接把代码贴出来了: <br> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <br> "<span>http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd</span>"> <br> <html xmlns="<span>http://www.w3.org/1999/xhtml</span>"> <br> <head> <br> <meta http-equiv="Content-Type" c /> <br> <META name="Author" c /> <br> <script type="text/javascript"> <br> function encode(s){ <br> return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/ <br> ([///./*/[/]/(/)/$/^])/g,"[url=file://$1/]<span>//$1</span>[/url]"); <br> } <br> function decode(s){ <br> return s.replace(///([///./*/[/]/(/)/$/^])/g,"$1").replace(/>/g,">").replace(/</ <br> g,"<").replace(/&/g,"&"); <br> } <br> function highlight(s){ <br> if (s.length==0){ <br> alert('搜索关键词未填写!'); <br> return false; <br> } <br> s=encode(s); <br> var obj=document.getElementsByTagName("body")[0]; <br> var t=obj.innerHTML.replace(/<span/s+class=.?highlight.?>([^<>]*)<//span>/ <br> gi,"$1"); <br> obj.innerHTML=t; <br> var cnt=loopSearch(s,obj); <br> t=obj.innerHTML <br> var r=/{searchHL}(({(?!//searchHL})|[^{])*){//searchHL}/g <br> t=t.replace(r,"<span class='highlight'>$1</span>"); <br> obj.innerHTML=t; <br> alert("搜索到关键词"+cnt+"处") <br> } <br> function loopSearch(s,obj){ <br> var cnt=0; <br> if (obj.nodeType==3){ <br> cnt=replace(s,obj); <br> return cnt; <br> } <br> for (var i=0,c;c=obj.childNodes<em>;i++){ <br> if (!c.className||c.className!="highlight") <br> cnt+=loopSearch(s,c); <br> } <br> return cnt; <br> } <br> function replace(s,dest){ <br> var r=new RegExp(s,"g"); <br> var tm=null; <br> var t=dest.nodeValue; <br> var cnt=0; <br> if (tm=t.match(r)){ <br> cnt=tm.length; <br> t=t.replace(r,"{searchHL}"+decode(s)+"{/searchHL}") <br> dest.nodeValue=t; <br> } <br> return cnt; <br> } <br> </script> <br> <style type="text/css"> <br> .highlight{background:green;font-weight:bold;color:white;} <br> </style> <br> </head> <br> <body> <br> <form > <br> <p><input name="s" id="s" title="搜索内容:"/><input type="submit" value="搜 <br> 索"/></p> <br> </form> <br> <div id="content"> <br> 测试高亮的代码。很长很长的代码…………………… <br> </div> <br> </body> <br> </html> <br><br><strong>删除标签</strong> <br> 来源:如何使用正则表达式去除大部分HTML标记? <br> 删除除了<img>、<br>、<p>之外所有的标签。子虚乌有给出代码中关键的一句: <br> o.innerHTML.replace(/(<//?(?!br|p|img)[^>//]*)//?>/gi,''); <br> 刚开始没反应过来,后来才想起来,这个正则不用区分起始和结束标签。 <br> <//?(?!br|p|img) <br> 匹配除了保护标签外标签的起始标签或者是结束标签的一部分。 <br> [^>//]* <br> 匹配到>或者/就结束。 <br> //?> <br> 起始标签或者结束标签的结尾</em></td> </tr> </tbody> </table></td> </tr> </tbody> </table> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1291678463400419328"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(JQuery,javascript,正则表达式)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835509897106649088.htm" title="Long类型前后端数据不一致" target="_blank">Long类型前后端数据不一致</a> <span class="text-muted">igotyback</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>响应给前端的数据浏览器控制台中response中看到的Long类型的数据是正常的到前端数据不一致前后端数据类型不匹配是一个常见问题,尤其是当后端使用Java的Long类型(64位)与前端JavaScript的Number类型(最大安全整数为2^53-1,即16位)进行数据交互时,很容易出现精度丢失的问题。这是因为JavaScript中的Number类型无法安全地表示超过16位的整数。为了解决这个问</div> </li> <li><a href="/article/1835498925755297792.htm" title="DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理" target="_blank">DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理</a> <span class="text-muted">STU学生网页设计</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1/1.htm">网页设计</a><a class="tag" taget="_blank" href="/search/%E6%9C%9F%E6%9C%AB%E7%BD%91%E9%A1%B5%E4%BD%9C%E4%B8%9A/1.htm">期末网页作业</a><a class="tag" taget="_blank" href="/search/html%E9%9D%99%E6%80%81%E7%BD%91%E9%A1%B5/1.htm">html静态网页</a><a class="tag" taget="_blank" href="/search/html5%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">html5期末大作业</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1/1.htm">网页设计</a><a class="tag" taget="_blank" href="/search/web%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web大作业</a> <div>️精彩专栏推荐作者主页:【进入主页—获取更多源码】web前端期末大作业:【HTML5网页期末作业(1000套)】程序员有趣的告白方式:【HTML七夕情人节表白网页制作(110套)】文章目录二、网站介绍三、网站效果▶️1.视频演示2.图片演示四、网站代码HTML结构代码CSS样式代码五、更多源码二、网站介绍网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程</div> </li> <li><a href="/article/1835496149843275776.htm" title="关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript" target="_blank">关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript</a> <span class="text-muted">二挡起步</span> <a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web前端期末大作业</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E6%97%85%E6%B8%B8/1.htm">旅游</a><a class="tag" taget="_blank" href="/search/%E9%A3%8E%E6%99%AF/1.htm">风景</a> <div>⛵源码获取文末联系✈Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业|游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作|HTML期末大学生网页设计作业,Web大学生网页HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScrip</div> </li> <li><a href="/article/1835496148601761792.htm" title="HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动" target="_blank">HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动</a> <span class="text-muted">二挡起步</span> <a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web前端期末大作业</a><a class="tag" taget="_blank" href="/search/web%E8%AE%BE%E8%AE%A1%E7%BD%91%E9%A1%B5%E8%A7%84%E5%88%92%E4%B8%8E%E8%AE%BE%E8%AE%A1/1.htm">web设计网页规划与设计</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/dreamweaver/1.htm">dreamweaver</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作HTML期末大学生网页设计作业HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScript:做与用户的交互行为文章目录前端学习路线</div> </li> <li><a href="/article/1835492740536823808.htm" title="node.js学习" target="_blank">node.js学习</a> <span class="text-muted">小猿L</span> <a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a> <div>node.js学习实操及笔记温故node.js,node.js学习实操过程及笔记~node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记为什么学node.js可以让别人访问我们编写的网页为后续的框架学习打下基础,三大框架vuereactangular离不开node.jsnode.js是什么官网:node.js是一个开源的、跨平台的运行JavaScript的运行</div> </li> <li><a href="/article/1835448239864770560.htm" title="JavaScript 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)" target="_blank">JavaScript 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)</a> <span class="text-muted">跳房子的前端</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95/1.htm">前端面试</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>在JavaScript中,深拷贝(DeepCopy)和浅拷贝(ShallowCopy)是用于复制对象或数组的两种不同方法。了解它们的区别和应用场景对于避免潜在的bugs和高效地处理数据非常重要。以下是对深拷贝和浅拷贝的详细解释,包括它们的概念、用途、优缺点以及实现方式。1.浅拷贝(ShallowCopy)概念定义:浅拷贝是指创建一个新的对象或数组,其中包含了原对象或数组的基本数据类型的值和对引用数</div> </li> <li><a href="/article/1835428948339683328.htm" title="JavaScript `Map` 和 `WeakMap`详细解释" target="_blank">JavaScript `Map` 和 `WeakMap`详细解释</a> <span class="text-muted">跳房子的前端</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E5%8E%9F%E7%94%9F%E6%96%B9%E6%B3%95/1.htm">原生方法</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在JavaScript中,Map和WeakMap都是用于存储键值对的数据结构,但它们有一些关键的不同之处。MapMap是一种可以存储任意类型的键值对的集合。它保持了键值对的插入顺序,并且可以通过键快速查找对应的值。Map提供了一些非常有用的方法和属性来操作这些数据对:set(key,value):将一个键值对添加到Map中。如果键已经存在,则更新其对应的值。get(key):获取指定键的值。如果键</div> </li> <li><a href="/article/1835419870070665216.htm" title="切换淘宝最新npm镜像源是" target="_blank">切换淘宝最新npm镜像源是</a> <span class="text-muted">hai40587</span> <a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>切换淘宝最新npm镜像源是一个相对简单的过程,但首先需要明确当前淘宝npm镜像源的状态和最新的镜像地址。由于网络环境和服务更新,镜像源的具体地址可能会发生变化,因此,我将基于当前可获取的信息,提供一个通用的切换步骤,并附上最新的镜像地址(截至回答时)。一、了解npm镜像源npm(NodePackageManager)是JavaScript的包管理器,用于安装、更新和管理项目依赖。由于npm官方仓库</div> </li> <li><a href="/article/1835399831535841280.htm" title="python实现规则引擎_规则引擎python" target="_blank">python实现规则引擎_规则引擎python</a> <span class="text-muted">weixin_39601511</span> <a class="tag" taget="_blank" href="/search/python%E5%AE%9E%E7%8E%B0%E8%A7%84%E5%88%99%E5%BC%95%E6%93%8E/1.htm">python实现规则引擎</a> <div>广告关闭回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你!我正在用python编写日志收集分析应用程序,我需要编写一个“规则引擎”来匹配和处理日志消息。它需要具有以下特点:正则表达式匹配消息本身消息严重性优先级的算术比较布尔运算符我设想一个例子规则可能是这样的:(message~program:messageandseverity>=h</div> </li> <li><a href="/article/1835392896531001344.htm" title="Regular Expression 正则表达式" target="_blank">Regular Expression 正则表达式</a> <span class="text-muted">Aimyon_36</span> <a class="tag" taget="_blank" href="/search/Data/1.htm">Data</a><a class="tag" taget="_blank" href="/search/Development/1.htm">Development</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>RegularExpression前言1.基本匹配2.元字符2.1点运算符.2.2字符集2.2.1否定字符集2.3重复次数2.3.1*号2.3.2+号2.3.3?号2.4{}号2.5(...)特征标群2.6|或运算符2.7转码特殊字符2.8锚点2.8.1^号2.8.2$号3.简写字符集4.零宽度断言(前后预查)4.1?=...正先行断言4.2?!...负先行断言4.3?Thefatcatsaton</div> </li> <li><a href="/article/1835383919906746368.htm" title="高性能javascript--算法和流程控制" target="_blank">高性能javascript--算法和流程控制</a> <span class="text-muted">海淀萌狗</span> <div>-for,while和do-while性能相当-避免使用for-in循环,==除非遍历一个属性量未知的对象==es5:for-in遍历的对象便不局限于数组,还可以遍历对象。原因:for-in每次迭代操作会同时搜索实例或者原型属性,for-in循环的每次迭代都会产生更多开销,因此要比其他循环类型慢,一般速度为其他类型循环的1/7。因此,除非明确需要迭代一个属性数量未知的对象,否则应避免使用for-i</div> </li> <li><a href="/article/1835373236217540608.htm" title="360前端星计划-动画可以这么玩" target="_blank">360前端星计划-动画可以这么玩</a> <span class="text-muted">马小蜗</span> <div>动画的基本原理定时器改变对象的属性根据新的属性重新渲染动画functionupdate(context){//更新属性}constticker=newTicker();ticker.tick(update,context);动画的种类1、JavaScript动画操作DOMCanvas2、CSS动画transitionanimation3、SVG动画SMILJS动画的优缺点优点:灵活度、可控性、性能</div> </li> <li><a href="/article/1835360244646113280.htm" title="JavaScript中秋快乐!" target="_blank">JavaScript中秋快乐!</a> <span class="text-muted">Q_w7742</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>我们来实现一个简单的祝福网页~主要的难度在于使用canvas绘图当点击canvas时候,跳出“中秋节快乐”字样,需要注册鼠标单击事件和计时器。首先定义主要函数:初始化当点击canvas之后转到onCanvasClick函数,绘图生成灯笼。functiononCanvasClick(){//事件处理函数context.clearRect(0,0,canvas1.width,canvas1.heigh</div> </li> <li><a href="/article/1835359727924637696.htm" title="Nginx从入门到实践(三)" target="_blank">Nginx从入门到实践(三)</a> <span class="text-muted">听你讲故事啊</span> <div>动静分离动静分离是将网站静态资源(JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。动静分离的一种做法是将静态资源部署在nginx上,后台项目部署到应用服务器上,根据一定规则静态资源的请求全部请求nginx服务器,达到动静分离的目标。rewrite规则Rewrite规则常见正则表达式Rewrite主要的功能就是实现URL的重写,Ngin</div> </li> <li><a href="/article/1835354700392787968.htm" title="Nginx的使用场景:构建高效、可扩展的Web架构" target="_blank">Nginx的使用场景:构建高效、可扩展的Web架构</a> <span class="text-muted">张某布响丸辣</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>Nginx,作为当今最流行的Web服务器和反向代理软件之一,凭借其高性能、稳定性和灵活性,在众多Web项目中扮演着核心角色。无论是个人博客、中小型网站,还是大型企业级应用,Nginx都能提供强大的支持。本文将探讨Nginx的几个主要使用场景,帮助读者理解如何在实际项目中充分利用Nginx的优势。1.静态文件服务对于包含大量静态文件(如HTML、CSS、JavaScript、图片等)的网站,Ngin</div> </li> <li><a href="/article/1835354447627251712.htm" title="前端知识点" target="_blank">前端知识点</a> <span class="text-muted">ZhangTao_zata</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>下面是一个最基本的html代码body{font-family:Arial,sans-serif;margin:20px;}//JavaScriptfunctionthatdisplaysanalertwhencalledfunctionshowMessage(){alert("Hello!Youclickedthebutton.");}MyFirstHTMLPageWelcometoMyPage</div> </li> <li><a href="/article/1835333268375957504.htm" title="爬虫技术抓取网站数据" target="_blank">爬虫技术抓取网站数据</a> <span class="text-muted">Bearjumpingcandy</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a> <div>爬虫技术是一种自动化获取网站数据的技术,它可以模拟人类浏览器的行为,访问网页并提取所需的信息。以下是爬虫技术抓取网站数据的一般步骤:发起HTTP请求:爬虫首先会发送HTTP请求到目标网站,获取网页的内容。解析HTML:获取到网页内容后,爬虫会使用HTML解析器解析HTML代码,提取出需要的数据。数据提取:通过使用XPath、CSS选择器或正则表达式等工具,爬虫可以从HTML中提取出所需的数据,如文</div> </li> <li><a href="/article/1835331376895848448.htm" title="【JS】前端文件读取FileReader操作总结" target="_blank">【JS】前端文件读取FileReader操作总结</a> <span class="text-muted">程序员-张师傅</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>前端文件读取FileReader操作总结FileReader是JavaScript中的一个WebAPI,它允许web应用程序异步读取用户计算机上的文件(或原始数据缓冲区)的内容,例如读取文件以获取其内容,并在不将文件发送到服务器的情况下在客户端使用它。这对于处理图片、文本文件等非常有用,尤其是当你想要在用户界面中即时显示文件内容或进行文件预览时。创建FileReader对象首先,你需要创建一个Fi</div> </li> <li><a href="/article/1835298981362626560.htm" title="webstorm报错TypeError: this.cliEngine is not a constructor" target="_blank">webstorm报错TypeError: this.cliEngine is not a constructor</a> <span class="text-muted">Blue_Color</span> <div>点击Details在控制台会显示报错的位置TypeError:this.cliEngineisnotaconstructoratESLintPlugin.invokeESLint(/Applications/RubyMine.app/Contents/plugins/JavaScriptLanguage/languageService/eslint/bin/eslint-plugin.js:97:</div> </li> <li><a href="/article/1835296397365178368.htm" title="创建一个完整的购物商城系统是一个复杂的项目,涉及前端(用户界面)、后端(服务器逻辑)、数据库等多个部分。由于篇幅限制,我无法在这里提供一个完整的系统代码,但我可以分别给出一些关键部分的示例代码,涵盖几" target="_blank">创建一个完整的购物商城系统是一个复杂的项目,涉及前端(用户界面)、后端(服务器逻辑)、数据库等多个部分。由于篇幅限制,我无法在这里提供一个完整的系统代码,但我可以分别给出一些关键部分的示例代码,涵盖几</a> <span class="text-muted">uthRaman</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>前端(HTML/CSS/JavaScript)grsyzp.cnHTML页面结构(index.html)html购物商城欢迎来到购物商城JavaScript(Ajax请求商品数据,app.js)javascriptdocument.addEventListener('DOMContentLoaded',function(){fetch('/api/products').then(response=</div> </li> <li><a href="/article/1835295766747377664.htm" title="C# 开发教程-入门基础" target="_blank">C# 开发教程-入门基础</a> <span class="text-muted">天马3798</span> <a class="tag" taget="_blank" href="/search/%E6%95%99%E7%A8%8B%E7%B3%BB%E5%88%97%E6%95%B4%E7%90%86/1.htm">教程系列整理</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1.C#简介、环境,程序结构2.C#基本语法,变量,控制局域,数据类型,类型转换3.C#数组、循环,Linq4.C#类,封装,方法5.C#枚举、字符串6.C#面相对象,继承,封装,多态7.C#特性、属性、反射、索引器8.C#委托,事件,集合,泛型9.C#匿名方法10.C#多线程更多:JQuery开发教程入门基础Vue开发基础入门教程Vue开发高级学习教程</div> </li> <li><a href="/article/1835293121953492992.htm" title="了解 UNPKG:前端开发者的包管理利器" target="_blank">了解 UNPKG:前端开发者的包管理利器</a> <span class="text-muted">小于负无穷</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/typescript/1.htm">typescript</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>在现代前端开发中,JavaScript包管理和模块化是至关重要的,而npm则是最流行的JavaScript包管理器之一。不过,随着前端项目复杂性的增加,有时候我们希望快速引入外部依赖,而无需本地安装和构建。此时,CDN(内容分发网络)成为了一种方便快捷的解决方案,而UNPKG就是这种方式中的佼佼者。什么是UNPKG?UNPKG是一个基于npm的内容分发网络(CDN),它允许开发者直接通过URL从n</div> </li> <li><a href="/article/1835247344719851520.htm" title="2019-05-29 vue-router的两种模式的区别" target="_blank">2019-05-29 vue-router的两种模式的区别</a> <span class="text-muted">Kason晨</span> <div>1、大家都知道vue是一种单页应用,单页应用就是仅在页面初始化的时候加载相应的html/css/js一单页面加载完成,不会因为用户的操作而进行页面的重新加载或者跳转,用javascript动态的变化html的内容优点:良好的交互体验,用户不需要刷新页面,页面显示流畅,良好的前后端工作分离模式,减轻服务器压力,缺点:不利于SEO,初次加载耗时比较多2、hash模式vue-router默认的是hash</div> </li> <li><a href="/article/1835216109297561600.htm" title="electron多标签页模式更像客户端" target="_blank">electron多标签页模式更像客户端</a> <span class="text-muted">diygwcom</span> <a class="tag" taget="_blank" href="/search/electron/1.htm">electron</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>Electron多标签页模式是指在Electron框架中实现的类似Web浏览器的多标签页功能。Electron是一个使用Web技术(HTML、CSS和JavaScript)来创建跨平台桌面应用程序的框架。在Electron中实现多标签页模式,通常需要借助一些特定的库或组件,如BrowserView或electron-tabs,或者通过自定义实现。实现方式1.使用BrowserViewBrowser</div> </li> <li><a href="/article/1835194426499100672.htm" title="外卖霸王餐返利外卖会员卡小程序开发" target="_blank">外卖霸王餐返利外卖会员卡小程序开发</a> <span class="text-muted">闹小艾</span> <a class="tag" taget="_blank" href="/search/good506070/1.htm">good506070</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a> <div>外卖霸王餐返利外卖会员卡小程序开发"社交电商赋能下的外卖返利小程序"是专为商家与用户双赢而设计的创新平台。以下是其开发方案的详细步骤:一、需求梳理:首先,我们需要明确小程序的核心功能和特色。包括设定活动类型、返利策略,以及用户体验友好的界面设计。二、技术决策:技术选型是关键。我们采用小程序的开发框架,利用JavaScript作为前端开发语言,并结合微信提供的API进行后端接口调用与数据处理。三、账</div> </li> <li><a href="/article/1835192531881652224.htm" title="Axure设计之全屏与退出全屏交互实现" target="_blank">Axure设计之全屏与退出全屏交互实现</a> <span class="text-muted">招风的黑耳</span> <a class="tag" taget="_blank" href="/search/Axure/1.htm">Axure</a><a class="tag" taget="_blank" href="/search/axure/1.htm">axure</a><a class="tag" taget="_blank" href="/search/%E4%BA%A4%E4%BA%92/1.htm">交互</a> <div>在AxureRP中,设计全屏与退出全屏的交互功能可以极大地提升用户体验,尤其是在展示产品原型或进行演示时。本文将详细介绍如何在AxureRP中通过结合JavaScript代码实现全屏与退出全屏的交互效果。Axure原型设计web端交互元件库:https://1zvcwx.axshare.com一、设计思路全屏与退出全屏的交互设计主要依赖于JavaScript代码来控制浏览器的全屏模式。在Axure</div> </li> <li><a href="/article/1835162742533746688.htm" title="全面指南:用户行为从前端数据采集到实时处理的最佳实践" target="_blank">全面指南:用户行为从前端数据采集到实时处理的最佳实践</a> <span class="text-muted">数字沉思</span> <a class="tag" taget="_blank" href="/search/%E8%90%A5%E9%94%80/1.htm">营销</a><a class="tag" taget="_blank" href="/search/%E6%B5%81%E9%87%8F%E8%BF%90%E8%90%A5/1.htm">流量运营</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AE%B9%E8%BF%90%E8%90%A5/1.htm">内容运营</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a> <div>引言在当今的数据驱动世界,实时数据采集和处理已经成为企业做出及时决策的重要手段。本文将详细介绍如何通过前端JavaScript代码采集用户行为数据、利用API和Kafka进行数据传输、通过Flink实时处理数据的完整流程。无论你是想提升产品体验还是做用户行为分析,这篇文章都将为你提供全面的解决方案。设计一个通用的ClickHouse表来存储用户事件时,需要考虑多种因素,包括事件类型、时间戳、用户信</div> </li> <li><a href="/article/1835154546289111040.htm" title="EcmaScript和JavaScript的区别" target="_blank">EcmaScript和JavaScript的区别</a> <span class="text-muted">每天吃八顿</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>ECMAScript和JavaScript是经常被混淆的两个术语,但实际上它们之间存在一些区别:ECMAScript:ECMAScript(通常缩写为ES,并且有版本号如ES5,ES6和ES7等)是由ECMA国际(EuropeanComputerManufacturersAssociation)制定的一种脚本语言的规范。这个规范定义了语法、命令、数据类型等基本元素。ECMAScript是一种规范,</div> </li> <li><a href="/article/1835137656992919552.htm" title="javascript添加p元素,html添加文字,appendChild" target="_blank">javascript添加p元素,html添加文字,appendChild</a> <span class="text-muted">游勇一</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html%E6%B7%BB%E5%8A%A0p/1.htm">html添加p</a><a class="tag" taget="_blank" href="/search/appendChild/1.htm">appendChild</a> <div>javascript添加p元素,html添加文字,appendChild。网页添加p元素效果截图。个人签名:游志勇,预制板,南托岭预制场。文字展示#wordsadd{font-size:70px;word-break:break-all;}#wordsaddp{margin:002px0;padding:002px0;line-height:93%;}.btn_width{width:90px;}</div> </li> <li><a href="/article/1835136018660028416.htm" title="CesiumJS+SuperMap3D.js混用实现可视域分析 S3M图层加载 裁剪区域绘制" target="_blank">CesiumJS+SuperMap3D.js混用实现可视域分析 S3M图层加载 裁剪区域绘制</a> <span class="text-muted">SteveJi666</span> <a class="tag" taget="_blank" href="/search/WebGL/1.htm">WebGL</a><a class="tag" taget="_blank" href="/search/cesium/1.htm">cesium</a><a class="tag" taget="_blank" href="/search/EarthSDK/1.htm">EarthSDK</a><a class="tag" taget="_blank" href="/search/SuperMap/1.htm">SuperMap</a><a class="tag" taget="_blank" href="/search/3d/1.htm">3d</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/arcgis/1.htm">arcgis</a> <div>版本简介:cesium:1.99;Supermap3D:SuperMapiClientJavaScript11i(2023);官方下载文档链家:SuperMap技术资源中心|为您提供全面的在线技术服务示例参考:support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/examples.html#analysissupport.supermap</div> </li> <li><a href="/article/26.htm" title="设计模式介绍" target="_blank">设计模式介绍</a> <span class="text-muted">tntxia</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>设计模式来源于土木工程师 克里斯托弗 亚历山大(http://en.wikipedia.org/wiki/Christopher_Alexander)的早期作品。他经常发表一些作品,内容是总结他在解决设计问题方面的经验,以及这些知识与城市和建筑模式之间有何关联。有一天,亚历山大突然发现,重复使用这些模式可以让某些设计构造取得我们期望的最佳效果。 亚历山大与萨拉-石川佳纯和穆雷 西乐弗斯坦合作</div> </li> <li><a href="/article/153.htm" title="android高级组件使用(一)" target="_blank">android高级组件使用(一)</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/RatingBar/1.htm">RatingBar</a><a class="tag" taget="_blank" href="/search/Spinner/1.htm">Spinner</a> <div>1、自动完成文本框(AutoCompleteTextView) AutoCompleteTextView从EditText派生出来,实际上也是一个文本编辑框,但它比普通编辑框多一个功能:当用户输入一个字符后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单项之后,AutoCompleteTextView按用户选择自动填写该文本框。 使用AutoCompleteTex</div> </li> <li><a href="/article/280.htm" title="[网络与通讯]路由器市场大有潜力可挖掘" target="_blank">[网络与通讯]路由器市场大有潜力可挖掘</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>          如果国内的电子厂商和计算机设备厂商觉得手机市场已经有点饱和了,那么可以考虑一下交换机和路由器市场的进入问题.....        这方面的技术和知识,目前处在一个开放型的状态,有利于各类小型电子企业进入  &nbs</div> </li> <li><a href="/article/407.htm" title="自写简单Redis内存统计shell" target="_blank">自写简单Redis内存统计shell</a> <span class="text-muted">商人shang</span> <a class="tag" taget="_blank" href="/search/Linux+shell/1.htm">Linux shell</a><a class="tag" taget="_blank" href="/search/%E7%BB%9F%E8%AE%A1Redis%E5%86%85%E5%AD%98/1.htm">统计Redis内存</a> <div>#!/bin/bash address="192.168.150.128:6666,192.168.150.128:6666" hosts=(${address//,/ }) sfile="staticts.log" for hostitem in ${hosts[@]} do ipport=(${hostitem</div> </li> <li><a href="/article/534.htm" title="单例模式(饿汉 vs懒汉)" target="_blank">单例模式(饿汉 vs懒汉)</a> <span class="text-muted">oloz</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a> <div>package 单例模式; /* * 应用场景:保证在整个应用之中某个对象的实例只有一个 * 单例模式种的《 懒汉模式》 * */ public class Singleton { //01 将构造方法私有化,外界就无法用new Singleton()的方式获得实例 private Singleton(){}; //02 申明类得唯一实例 priva</div> </li> <li><a href="/article/661.htm" title="springMvc json支持" target="_blank">springMvc json支持</a> <span class="text-muted">杨白白</span> <a class="tag" taget="_blank" href="/search/json+springmvc/1.htm">json springmvc</a> <div>1.Spring mvc处理json需要使用jackson的类库,因此需要先引入jackson包 2在spring mvc中解析输入为json格式的数据:使用@RequestBody来设置输入 @RequestMapping("helloJson") public @ResponseBody JsonTest helloJson() { </div> </li> <li><a href="/article/788.htm" title="android播放,掃描添加本地音頻文件" target="_blank">android播放,掃描添加本地音頻文件</a> <span class="text-muted">小桔子</span> <div>        最近幾乎沒有什麽事情,繼續鼓搗我的小東西。想在項目中加入一個簡易的音樂播放器功能,就像華為p6桌面上那麼大小的音樂播放器。用過天天動聽或者QQ音樂播放器的人都知道,可已通過本地掃描添加歌曲。不知道他們是怎麼實現的,我覺得應該掃描設備上的所有文件,過濾出音頻文件,每個文件實例化為一個實體,記錄文件名、路徑、歌手、類型、大小等信息。具體算法思想,</div> </li> <li><a href="/article/915.htm" title="oracle常用命令" target="_blank">oracle常用命令</a> <span class="text-muted">aichenglong</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/dba/1.htm">dba</a><a class="tag" taget="_blank" href="/search/%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/1.htm">常用命令</a> <div>1 创建临时表空间 create temporary tablespace user_temp  tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m  autoextend on  next 50m maxsize 20480m  extent management local</div> </li> <li><a href="/article/1042.htm" title="25个Eclipse插件" target="_blank">25个Eclipse插件</a> <span class="text-muted">AILIKES</span> <a class="tag" taget="_blank" href="/search/eclipse%E6%8F%92%E4%BB%B6/1.htm">eclipse插件</a> <div>提高代码质量的插件1. FindBugsFindBugs可以帮你找到Java代码中的bug,它使用Lesser GNU Public License的自由软件许可。2. CheckstyleCheckstyle插件可以集成到Eclipse IDE中去,能确保Java代码遵循标准代码样式。3. ECLemmaECLemma是一款拥有Eclipse Public License许可的免费工具,它提供了</div> </li> <li><a href="/article/1169.htm" title="Spring MVC拦截器+注解方式实现防止表单重复提交" target="_blank">Spring MVC拦截器+注解方式实现防止表单重复提交</a> <span class="text-muted">baalwolf</span> <a class="tag" taget="_blank" href="/search/spring+mvc/1.htm">spring mvc</a> <div>原理:在新建页面中Session保存token随机码,当保存时验证,通过后删除,当再次点击保存时由于服务器端的Session中已经不存在了,所有无法验证通过。   1.新建注解:   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 </div> </li> <li><a href="/article/1296.htm" title="《Javascript高级程序设计(第3版)》闭包理解" target="_blank">《Javascript高级程序设计(第3版)》闭包理解</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>“闭包是指有权访问另一个函数作用域中的变量的函数。”--《Javascript高级程序设计(第3版)》         看以下代码: <script type="text/javascript"> function outer() { var i = 10; return f</div> </li> <li><a href="/article/1423.htm" title="AngularJS Module类的方法" target="_blank">AngularJS Module类的方法</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/Module/1.htm">Module</a> <div>        AngularJS中的Module类负责定义应用如何启动,它还可以通过声明的方式定义应用中的各个片段。我们来看看它是如何实现这些功能的。 一.Main方法在哪里         如果你是从Java或者Python编程语言转过来的,那么你可能很想知道AngularJS里面的main方法在哪里?这个把所</div> </li> <li><a href="/article/1550.htm" title="[Maven学习笔记七]Maven插件和目标" target="_blank">[Maven学习笔记七]Maven插件和目标</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/maven%E6%8F%92%E4%BB%B6/1.htm">maven插件</a> <div>插件(plugin)和目标(goal) Maven,就其本质而言,是一个插件执行框架,Maven的每个目标的执行逻辑都是由插件来完成的,一个插件可以有1个或者几个目标,比如maven-compiler-plugin插件包含compile和testCompile,即maven-compiler-plugin提供了源代码编译和测试源代码编译的两个目标   使用插件和目标使得我们可以干预</div> </li> <li><a href="/article/1677.htm" title="【Hadoop八】Yarn的资源调度策略" target="_blank">【Hadoop八】Yarn的资源调度策略</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>1. Hadoop的三种调度策略 Hadoop提供了3中作业调用的策略, FIFO Scheduler Fair Scheduler Capacity Scheduler 以上三种调度算法,在Hadoop MR1中就引入了,在Yarn中对它们进行了改进和完善.Fair和Capacity Scheduler用于多用户共享的资源调度   2. 多用户资源共享的调度 </div> </li> <li><a href="/article/1804.htm" title="Nginx使用Linux内存加速静态文件访问" target="_blank">Nginx使用Linux内存加速静态文件访问</a> <span class="text-muted">ronin47</span> <div>Nginx是一个非常出色的静态资源web服务器。如果你嫌它还不够快,可以把放在磁盘中的文件,映射到内存中,减少高并发下的磁盘IO。 先做几个假设。nginx.conf中所配置站点的路径是/home/wwwroot/res,站点所对应文件原始存储路径:/opt/web/res shell脚本非常简单,思路就是拷贝资源文件到内存中,然后在把网站的静态文件链接指向到内存中即可。具体如下: </div> </li> <li><a href="/article/1931.htm" title="关于Unity3D中的Shader的知识" target="_blank">关于Unity3D中的Shader的知识</a> <span class="text-muted">brotherlamp</span> <a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/unity%E8%B5%84%E6%96%99/1.htm">unity资料</a><a class="tag" taget="_blank" href="/search/unity%E6%95%99%E7%A8%8B/1.htm">unity教程</a><a class="tag" taget="_blank" href="/search/unity%E8%A7%86%E9%A2%91/1.htm">unity视频</a><a class="tag" taget="_blank" href="/search/unity%E8%87%AA%E5%AD%A6/1.htm">unity自学</a> <div>首先先解释下Unity3D的Shader,Unity里面的Shaders是使用一种叫ShaderLab的语言编写的,它同微软的FX文件或者NVIDIA的CgFX有些类似。传统意义上的vertex shader和pixel shader还是使用标准的Cg/HLSL 编程语言编写的。因此Unity文档里面的Shader,都是指用ShaderLab编写的代码,然后我们来看下Unity3D自带的60多个S</div> </li> <li><a href="/article/2058.htm" title="CopyOnWriteArrayList vs ArrayList" target="_blank">CopyOnWriteArrayList vs ArrayList</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>package com.ljn.base; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; /** * 总述: * 1.ArrayListi不是线程安全的,CopyO</div> </li> <li><a href="/article/2185.htm" title="内存中栈和堆的区别" target="_blank">内存中栈和堆的区别</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98/1.htm">内存</a> <div> 1、内存分配方面:     堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。     栈:由编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中</div> </li> <li><a href="/article/2312.htm" title="回答一位网友对Scala的提问" target="_blank">回答一位网友对Scala的提问</a> <span class="text-muted">chenchao051</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a><a class="tag" taget="_blank" href="/search/map/1.htm">map</a> <div>本来准备在私信里直接回复了,但是发现不太方便,就简要回答在这里。 问题 写道 对于scala的简洁十分佩服,但又觉得比较晦涩,例如一例,Map("a" -> List(11,111)).flatMap(_._2),可否说下最后那个函数做了什么,真正在开发的时候也会如此简洁?谢谢    先回答一点,在实际使用中,Scala毫无疑问就是这么简单。</div> </li> <li><a href="/article/2439.htm" title="mysql 取每组前几条记录" target="_blank">mysql 取每组前几条记录</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E7%BB%84/1.htm">分组</a><a class="tag" taget="_blank" href="/search/%E6%9C%80%E5%A4%A7%E5%80%BC/1.htm">最大值</a><a class="tag" taget="_blank" href="/search/%E6%9C%80%E5%B0%8F%E5%80%BC/1.htm">最小值</a><a class="tag" taget="_blank" href="/search/%E6%AF%8F%E7%BB%84%E4%B8%89%E6%9D%A1%E8%AE%B0%E5%BD%95/1.htm">每组三条记录</a> <div>一、对分组的记录取前N条记录:例如:取每组的前3条最大的记录 1.用子查询: SELECT * FROM tableName a  WHERE 3> (SELECT COUNT(*) FROM  tableName b WHERE b.id=a.id AND b.cnt>a. cnt) ORDER BY a.id,a.account DE</div> </li> <li><a href="/article/2566.htm" title="HTTP深入浅出 http请求" target="_blank">HTTP深入浅出 http请求</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/http/1.htm">http</a> <div>  HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后We</div> </li> <li><a href="/article/2693.htm" title="判断MySQL记录是否存在方法比较" target="_blank">判断MySQL记录是否存在方法比较</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>把数据写入到数据库的时,常常会碰到先要检测要插入的记录是否存在,然后决定是否要写入。   我这里总结了判断记录是否存在的常用方法:   sql语句: select   count ( * )  from  tablename;   然后读取count(*)的值判断记录是否存在。对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来。</div> </li> <li><a href="/article/2820.htm" title="对HTML XML的一点认识" target="_blank">对HTML XML的一点认识</a> <span class="text-muted">e200702084</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>感谢http://www.w3school.com.cn提供的资料 HTML 文档中的每个成分都是一个节点。 节点 根据 DOM,HTML 文档中的每个成分都是一个节点。 DOM 是这样规定的: 整个文档是一个文档节点 每个 HTML 标签是一个元素节点 包含在 HTML 元素中的文本是文本节点 每一个 HTML 属性是一个属性节点 注释属于注释节点 Node 层次 </div> </li> <li><a href="/article/2947.htm" title="jquery分页插件" target="_blank">jquery分页插件</a> <span class="text-muted">genaiwei</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5/1.htm">分页</a><a class="tag" taget="_blank" href="/search/%E6%8F%92%E4%BB%B6/1.htm">插件</a> <div>//jquery页码控件// 创建一个闭包    (function($) {      // 插件的定义      $.fn.pageTool = function(options) {        var totalPa</div> </li> <li><a href="/article/3201.htm" title="Mybatis与Ibatis对照入门于学习" target="_blank">Mybatis与Ibatis对照入门于学习</a> <span class="text-muted">Josh_Persistence</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%88%AB/1.htm">区别</a><a class="tag" taget="_blank" href="/search/%E8%81%94%E7%B3%BB/1.htm">联系</a> <div>一、为什么使用IBatis/Mybatis         对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate、JPA 这样的一站式对象 / 关系映射(O/R Mapping)解决方案盛行之前,iBaits 基本是持久层框架的不二选择。即使在持久层框架层出不穷的今天,iBatis 凭借着易学易用、</div> </li> <li><a href="/article/3328.htm" title="C中怎样合理决定使用那种整数类型?" target="_blank">C中怎样合理决定使用那种整数类型?</a> <span class="text-muted">秋风扫落叶</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/1.htm">数据类型</a> <div>如果需要大数值(大于32767或小于32767), 使用long 型。 否则, 如果空间很重要 (如有大数组或很多结构), 使用 short 型。 除此之外, 就使用 int 型。 如果严格定义的溢出特征很重要而负值无关紧要, 或者你希望在操作二进制位和字节时避免符号扩展的问题, 请使用对应的无符号类型。 但是, 要注意在表达式中混用有符号和无符号值的情况。    &nbs</div> </li> <li><a href="/article/3455.htm" title="maven问题" target="_blank">maven问题</a> <span class="text-muted">zhb8015</span> <a class="tag" taget="_blank" href="/search/maven%E9%97%AE%E9%A2%98/1.htm">maven问题</a> <div>  问题1: Eclipse 中 新建maven项目 无法添加src/main/java 问题    eclipse创建maevn web项目,在选择maven_archetype_web原型后,默认只有src/main/resources这个Source Floder。     按照maven目录结构,添加src/main/ja</div> </li> <li><a href="/article/3582.htm" title="(二)androidpn-server tomcat版源码解析之--push消息处理" target="_blank">(二)androidpn-server tomcat版源码解析之--push消息处理</a> <span class="text-muted">spjich</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/androdipn/1.htm">androdipn</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E9%80%81/1.htm">推送</a> <div>在 (一)androidpn-server tomcat版源码解析之--项目启动这篇中,已经描述了整个推送服务器的启动过程,并且把握到了消息的入口即XmppIoHandler这个类,今天我将继续往下分析下面的核心代码,主要分为3大块,链接创建,消息的发送,链接关闭。 先贴一段XmppIoHandler的部分代码 /** * Invoked from an I/O proc</div> </li> <li><a href="/article/3709.htm" title="用js中的formData类型解决ajax提交表单时文件不能被serialize方法序列化的问题" target="_blank">用js中的formData类型解决ajax提交表单时文件不能被serialize方法序列化的问题</a> <span class="text-muted">中华好儿孙</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6/1.htm">上传文件</a><a class="tag" taget="_blank" href="/search/FormData/1.htm">FormData</a> <div> var formData = new FormData($("#inputFileForm")[0]); $.ajax({ type:'post', url:webRoot+"/electronicContractUrl/webapp/uploadfile", data:formData, async: false, ca</div> </li> <li><a href="/article/3836.htm" title="mybatis常用jdbcType数据类型" target="_blank">mybatis常用jdbcType数据类型</a> <span class="text-muted">ysj5125094</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/mapper/1.htm">mapper</a><a class="tag" taget="_blank" href="/search/jdbcType/1.htm">jdbcType</a> <div>  MyBatis 通过包含的jdbcType 类型 BIT         FLOAT      CHAR          </div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>