JavaScript中常用的正则表达式整理

JavaScript中常用的正则表达式整理

匹配中文字符的正则表达式: [u4e00-u9fa5]

匹配双字节字符(包括汉字在内):[^x00-xff]

匹配空白行的正则表达式:ns*r

匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?|< .*? />

匹配首尾空白字符的正则表达式:^s*|s*$

匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

匹配网址URL的正则表达式:[a-zA-z]+://[^s]*

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

匹配国内电话号码:d{3}-d{8}|d{4}-d{7} //匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,} //腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]d{5}(?!d) // 中国邮政编码为6位数字

匹配身份证:d{15}|d{18} // 评注:中国的身份证为15位或18位

匹配ip地址:d+.d+.d+.d+

匹配特定数字:
^[1-9]d*$    //匹配正整数
^-[1-9]d*$   //匹配负整数
^-?[1-9]d*$   //匹配整数
^[1-9]d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0)

匹配特定字符串:

^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:

只能输入数字:^[0-9]*$
只能输入n位的数字:^d{n}$
只能输入至少n位数字:^d{n,}$
只能输入m-n位的数字:^d{m,n}$
只能输入零和非零开头的数字:^(0|[1-9][0-9]*)$
只能输入有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
只能输入有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
只能输入非零的正整数:^+?[1-9][0-9]*$
只能输入非零的负整数:^-[1-9][0-9]*$
只能输入长度为3的字符:^.{3}$
只能输入由26个英文字母组成的字符串:^[A-Za-z]+$
只能输入由26个大写英文字母组成的字符串:^[A-Z]+$
只能输入由26个小写英文字母组成的字符串:^[a-z]+$
只能输入由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
只能输入由数字、26个英文字母或者下划线组成的字符串:^w+$
验证用户密码:^[a-zA-Z]w{5,17}$正确格式为:以字母开头,长度在6-18之间,
只能包含字符、数字和下划线。
验证是否含有^%&’,;=?KaTeX parse error: Expected group after '^' at position 8: ”等字符:“[^̲%&',;=?x22]+”
只能输入汉字:^[u4e00-u9fa5],{0,}$
验证Email地址:^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
验证InternetURL:^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$
验证电话号码:^((d{3,4})|d{3,4}-)?d{7,8}$ // 正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
验证身份证号(15位或18位数字):^d{15}|d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ //正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ //正确格式为:“01”“09”和“1”“31”。
匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/< (.*)>.*|< (.*) />/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

(1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

1
String.prototype.len=function(){return this.replace([^x00-xff]/g,”aa”).length;}
(2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现

String.prototype.trim = function() {
	return this.replace(/(^s*)|(s*$)/g, “”);
}

(3)应用:利用正则表达式分解和转换IP地址

function IP2V(ip) { //IP地址转换成对应数值
	re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式
	if(re.test(ip)) {
		return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
	}
	else {
		throw new Error(”Not a valid IP address!”)
	}
}

(4)应用:从URL地址中提取文件名的javascript程序

s=”http://www.9499.net/page1.htm”;
s=s.replace(/(.*/){0,}([^.]+).*/ig,”$2″) ; //Page1.htm

(5)应用:利用正则表达式限制网页表单里的文本框输入内容
用正则表达式限制只能输入中文:οnkeyup=”value=”/blog/value.replace(/["^u4E00-u9FA5]/g,”) ”

onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,”))”

用正则表达式限制只能输入全角字符: οnkeyup=”value=”/blog/value.replace(/["^uFF00-uFFFF]/g,”) ”

onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^uFF00-uFFFF]/g,”))”
用正则表达式限制只能输入数字:οnkeyup=”value=”/blog/value.replace(/["^d]/g,”) “onbeforepaste= “clipboardData.setData

(‘text’,clipboardData.getData(‘text’).replace(/[^d]/g,”))”
用正则表达式限制只能输入数字和英文:οnkeyup=”value=”/blog/value.replace(/[W]/g,””) “onbeforepaste=”clipboardData.setData

(‘text’,clipboardData.getData(‘text’).replace(/[^d]/g,”
中正则表达式,js去掉html标记,去掉字符,截取字符(2009-01-11 10:20:14)
2007-07-08 15:26

1,得到网页上的链接地址:

1
string matchString = @">]+href=\s*(?:’(?[’]+)’|""(?[""]+)""|(?[>\s]+))\s*[^>]*>";
2,得到网页的标题:

1
string matchString = @"(?.*)";<br> 3,去掉网页中的所有的html标记:</p> <p>1<br> string temp = Regex.Replace(html, “<[^>]*>”, “”); //html是一个要去除html标记的文档</p> <p>java 中去掉网页中的所有标签<br> 1<br> str = str.replaceAll("<[^>]<em>>", “”);<br> 4, string matchString = @"([\S\s\t]</em>?)";</p> <p>5,js去掉所有html标记的函数:</p> <pre><code>function delHtmlTag(str) { return str.replace(/<\/?.+?>/g,"");//去掉所有的html标记 } </code></pre> <p>这个可能IE5会错,那用这个,梅花的:</p> <pre><code>function delHtmlTag(str) { return str.replace(/<[^>]+>/g,"");//去掉所有的html标记 } </code></pre> <p>校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串</p> <pre><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></pre> <p>来源:正则匹配空格的问题</p> <p>字符串内字符键有空格,但是空格的数量可能不一致,通过正则将空格的个数统一变为一个。</p> <p>例如:蓝 色 理 想</p> <p>变成:蓝 色 理 想</p> <p>aobert的正则:</p> <pre><code><script type="text/javascript"> var str="蓝 色 理 想" var reg=/\s+/g str = str.replace(reg," ") document.write(str) </script> </code></pre> <p>判断字符串是不是由数字组成<br> 来源:有没有简单的方法判断字符串由数字组成?</p> <p>这个正则比较简单,写了一个测试</p> <pre><code><script type="text/javascript"> function isDigit(str){ var reg = /^\d*$/; return reg.test(str); } var str = "7654321"; document.write(isDigit(str)); var str = "test"; document.write(isDigit(str)); </script> </code></pre> <p>电话号码正则<br> 来源:想问一下关于电话号码的正则判断</p> <p>:求一个验证电话号码的JS正则</p> <p>/^\d{3,4}-\d{7,8}(-\d{3,4})?$/区号必填为3-4位的数字,区号之后用“-”与电话号码连接</p> <p>^\d{3,4}-电话号码为7-8位的数字</p> <p>\d{7,8}分机号码为3-4位的数字,非必填,但若填写则以“-”与电话号码相连接</p> <p>(-\d{3,4})?手机号码正则表达式<br> 正则验证手机号,忽略前面的0,支持130-139,150-159。忽略前面0之后判断它是11位的。</p> <p>cloeft的正则:</p> <p>/^0*(13|15)\d{9}$/ ^0*匹配掉开头任意数量的0。</p> <p>由于手机号码是13任意数字9位,和15任意数字9位,所以可以用(13|15)\d{9}匹配。</p> <p>测试代码如下:</p> <pre><code>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)+'<br />'); document.write(testReg(reg,str2)+'<br />'); document.write(testReg(reg,str3)+'<br />'); </code></pre> <p>使用正则表达式实现删除字符串中的空格:</p> <p>代码以及测试代码如下:</p> <p>测试的结果如下:</p> <p>length:11<br> ltrim length:10<br> rtrim length:10<br> trim length:9 限制文本框只能输入数字和小数点等等<br> 来源:文本框输入限制的问题????</p> <p>只能输入数字和小数点</p> <p><code>var reg = /^\d*\.?\d{0,2}$/</code> 开头有若干个数字,中间有0个或者一个小数点,结尾有0到2个数字。</p> <p>只能输入小写的英文字母和小数点,和冒号,正反斜杠(:./)</p> <p>var reg = /[a-z./\:]+/; a-z包括了小写的英文字母,.是小数点,/和\分别是左右反斜线,最后是冒号。整个组成一个字符集和代码任一均可,最后在加上+,1或者多个。</p> <p>替换小数点前内容为指定内容<br> 来源:求一正则表达式!</p> <p>请问 怎么把这个字符串的小数点前面的字符替换为我自定义的字符串啊?<br> 例如:infomarket.php?id=197 替换为 test.php?id=197<br> 应该可以把第一个点“.”之前的所有单词字符替换为test就可以了。我写的正则如下:</p> <pre><code><script type="text/javascript"> var str = "infomarket.php?id=197"; var reg = /^\w*/ig; //匹配字符串开头的任意个单词字符 str = str.replace(reg,'test'); document.write(str); </script> </code></pre> <p>只匹配中文的正则表达式</p> <p>前两天看的《JavaScript开发王》里恰好有中文的unicode范围,正则如下:</p> <p>/[\u4E00-\u9FA5\uf900-\ufa2d]/ 写了一个简单的测试,会把所有的中文替换成“哦”。</p> <p>返回字符串的中文字符个数<br> 来源:有没返回中文字符字节的函数!</p> <p>先去掉非中文字符,再返回length属性。函数以及测试代码如下:</p> <pre><code><script type="text/javascript"> function cLength(str){ var reg = /[^\u4E00-\u9FA5\uf900-\ufa2d]/g; //匹配非中文的正则表达式 var temp = str.replace(reg,''); return temp.length; } var str = "中文123"; document.write(str.length+'<br />'); document.write(cLength(str)); </script> </code></pre> <p>结果:</p> <p>5<br> 2</p> <p>中文两个,数字三个,正确。</p> <p>下面的测试也正确。</p> <p>1<br> 2<br> 3<br> var str = “中文123tets@#!#%$#[][{}”;<br> document.write(str.length+’<br>’);<br> document.write(cLength(str));<br> 正则表达式取得匹配IP地址前三段<br> 来源:如何用正则取IP前3段</p> <p>192.168.118.101,192.168.118.72, 192.168.118.1都替换成:192.168.118</p> <p>只要匹配掉最后一段并且替换为空字符串就行了,正则如下:</p> <p>/.\d{1,3}$/ 匹配结尾的.n,.nn或者.nnn。</p> <p>测试代码如下:</p> <pre><code>function replaceReg(reg,str){ return str.replace(reg,'') } </code></pre> <pre><code>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)+'<br />'); document.write(replaceReg(reg,str2)+'<br />'); document.write(replaceReg(reg,str3)+'<br />'); </code></pre> <p>相似的有,这个帖子里有一个验证IP地址的方法:求检验MAC地址的正则表达例子</p> <p>匹配</p> <ul> <li> 与 <ul> <li> 之间的内容 <br> 来源:请教个正则的小问题吧 </li> </ul> </li> </ul> <p></p> <ul> <li> safsf <ul> <li> safsf </li> </ul> <ul> <li> safsf </li> </ul> </li> </ul> <p>用正则可以得到 </p> <ul> <li> 起到下个 <ul> <li> 之间的内容。 </li> </ul> </li> </ul> <p></p> <p>正则如下:</p> <p>/</p> <ul> <li> [\s\S]+? <ul> <li> /i 首先匹配两侧的ul标签,中间的[\s\S]+?可以匹配一个或者多个任意字符,一定要非贪婪,否则会匹配 <ul> <li> safsf <ul> <li> safsf </li> </ul> <ul> <li> 。 </li> </ul> </li> </ul> </li> </ul> </li> </ul> <p></p> <p>用正则表达式获得文件名<br> 来源:C:\006.jpg</p> <p>c:\images\tupian\006.jpg</p> <p>可能是直接在盘符根目录下,也可能在好几层目录下,要求替换到只剩文件名。</p> <p>xlez的正则如下:</p> <p>/[^\/]*[\/]+/g 首先匹配非左右斜线字符0或多个,然后是左右斜线一个或者多个。形如“xxx/”或者“xxx\”或者“/”或者“\”</p> <p>函数以及测试代码:</p> <pre><code><script type="text/javascript"> function getFileName(str){ var reg = /[^\\\/]*[\\\/]+/g; //xxx\或者是xxx/ str = str.replace(reg,''); return str; } var str = "c:\\images\\tupian\\006.jpg"; document.write(getFileName(str)+'<br />'); var str2 = "c:/images/tupian/test2.jpg"; document.write(getFileName(str2)); </script> </code></pre> <p>注意,\需要转义。</p> <p>绝对路径变相对路径<br> 来源:讨论一个正则</p> <p>将转换为:。</p> <p>其中网址可能改变,例如http://localhost等等。</p> <p>cloudchen的正则:</p> <p>/http://[^/]+/ 首先是http://,然后[^/]+找过1个或者多个非/字符,因为遇到第一个/表示已经到目录了,停止匹配。</p> <p>测试代码如下:</p> <pre><code><script type="text/javascript"> var str = '<IMG height="120" width="800" \src="http://23.123.22.12/image/somepic.gif">'; var reg = /http:\/\/[^\/]+/; str = str.replace(reg,""); alert(str) </script> </code></pre> <p>用户名正则</p> <p>用于用户名注册,,用户名只 能用 中文、英文、数字、下划线、4-16个字符。</p> <p>hansir和解决方案弄成正则:</p> <p><code>/^[\u4E00-\u9FA5\uf900-\ufa2d\w]{4,16}$/</code> 中文字符或者单词字符,4到16个。实现4到16结成到正则里的关键就是开始^和结束$,这就等于整个字符串只能有这些匹配的内容,不能有多余的。</p> <p>函数和测试代码如下:</p> <pre><code><script type="text/javascript"> function isEmail(str){ var reg = /^[\u4E00-\u9FA5\uf900-\ufa2d\w]{4,16}$/; return reg.test(str); } var str = '超级无敌用户名regExp'; var str2 = '捣乱的@'; var str3 = '太短' var str4 = '太长longlonglonglonglonglonglonglong' document.write(isEmail(str)+'<br />'); document.write(isEmail(str2)+'<br />'); document.write(isEmail(str3)+'<br />'); document.write(isEmail(str4)+'<br />'); </script> </code></pre> <p>匹配英文地址</p> <p>规则如下:<br> 包含 “点”, “字母”,“空格”,“逗号”,“数字”,但开头和结尾不能是除字母外任何字符。</p> <p>[.a-zA-Z\s,0-9]这个字符集就实现了字母,空格,逗号和数字。最终正则如下:</p> <p><code>/^[a-zA-Z][\.a-zA-Z\s,0-9]*?[a-zA-Z]+$/</code> 开头必须有字母,结束也必须是一个以上字母。测试代码如下:</p> <pre><code><script type="text/javascript"> function testReg(reg,str){ return reg.test(str); } var reg = /^[a-zA-Z][\.a-zA-Z\s,0-9]*?[a-zA-Z]+$/; var str = 'No.8,ChangAn Street,BeiJing,China'; var str2 = '8.No,ChangAn Street,BeiJing,China'; var str3 = 'No.8,ChangAn Street,BeiJing,China88'; document.write(testReg(reg,str)+'<br />') document.write(testReg(reg,str2)+'<br />') document.write(testReg(reg,str3)+'<br />') </script> </code></pre> <p>正则匹配价格</p> <p>价格的格式应该如下:</p> <p>开头数字若干位,可能有一个小数点,小数点后面可以有两位数字。hansir给出的对应正则如下:</p> <p>/^(\d*.\d{0,2}|\d+).*$/ hansir给出的测试代码如下:</p> 无标题文档 身份证号码的匹配 来源:关于正则的,大家帮帮忙,急,在线等 <p>身份证号码可以是15位或者是18位,其中最后一位可以是X。其它全是数字,正则如下:</p> <p>/^(\d{14}|\d{17})(\d|[xX])$/ 开头是14位或者17位数字,结尾可以是数字或者是x或者是X。</p> <p>测试代码如下:</p> <pre><code><script type="text/javascript"> function testReg(reg,str){ return reg.test(str); } var reg = /^(\d{14}|\d{17})(\d|[xX])$/; var str = '123456789012345';//15位 var str2 = '123456789012345678';//18位 var str3 = '12345678901234567X';//最后一位是X var str4 = '1234';//位数不对 document.write(testReg(reg,str)+'<br />'); document.write(testReg(reg,str2)+'<br />'); document.write(testReg(reg,str3)+'<br />'); document.write(testReg(reg,str4)+'<br />'); </script> </code></pre> <p>要求文本有指定行数</p> <p>匹配至少两行的字符串,每行都为非空字符。</p> <p>只要匹配到[\n\r]就表示有换行了,再保证换行的两段都不是空字符就可以了。正则如下:</p> <p><code>/\S+?[\n\r]\S+?/i</code> 这个正则的应用应该是用在textarea里,如果是如下要求:可以支持所有字符,中间可带空格,可以包括英文、数字、中文、标点</p> <p>这样的话,只要针对空格再改一下就行了。(按照非空的要求,上面有不能匹配“字符+空格+换行+字符”的字符串)。修改如下:</p> <p>/\S+?\s*?[\n\r]\s*?\S+?/i 单词首字母大写<br> 来源:求个正则,处理英文单词或词组的</p> <p>每单词首字大写,其他小写。如blue idea转换为Blue Idea,BLUE IDEA也转换为Blue Idea</p> <p>cloeft的正则:</p> <p>/\b(\w)|\s(\w)/g 所谓“首字母”包括两种情况:第一种是边界(开头)的单词字符,一种是空格之后的新单词的第一个字母。测试代码如下:</p> <pre><code><script type="text/javascript"> function replaceReg(reg,str){ str = str.toLowerCase(); return str.replace(reg,function(m){return m.toUpperCase()}) } var reg = /\b(\w)|\s(\w)/g; var str = 'blue idea'; var str2 = 'BLUE IDEA'; var str3 = 'Test \n str is no good!'; var str4 = 'final test'; document.write(replaceReg(reg,str)+'<br />'); document.write(replaceReg(reg,str2)+'<br />'); document.write(replaceReg(reg,str3)+'<br />'); document.write(replaceReg(reg,str4)+'<br />'); </script> </code></pre> <p>正则验证日期格式</p> <p>yyyy-mm-dd格式</p> <p>正则如下:</p> <p><code>/^\d{4}-\d{1,2}-\d{1,2}$/</code> 4位数字,横线,1或者2位数字,再横线,最后又是1或者2位数字。</p> <p>测试代码如下:</p> <pre><code><script type="text/javascript"> function testReg(reg,str){ return reg.test(str); } var reg = /^\d{4}-\d{1,2}-\d{1,2}$/; var str = '2008-8-8'; var str2 = '2008-08-08'; var str3 = '08-08-2008'; var str4 = '2008 08 08'; document.write(testReg(reg,str)+'<br />'); document.write(testReg(reg,str2)+'<br />'); document.write(testReg(reg,str3)+'<br />'); document.write(testReg(reg,str4)+'<br />'); </script> </code></pre> <p>第二种格式:来源:求一正则表达式<br> yyyy-mm-dd<br> 或<br> yyyy/mm/dd</p> <p>用“或”简单地修改一下就行了。</p> <p><strong>/^\d{4}(-|/)\d{1,2}(-|/)\d{1,2}$/ 去掉文件的后缀名</strong></p> <p>www.abc.com/dc/fda.asp变为www.abc.com/dc/fda</p> <p>如果文件后缀已知的话这个问题就非常简单了,正则如下:</p> <p>/.asp$/ 匹配最后的.asp而已,测试代码如下:</p> <p>如果文件名未知的话就用这个正则:/.\w+$/,测试代码如下:</p> <pre><code><script type="text/javascript"> function delExtension(str){ var reg = /\.\w+$/; return str.replace(reg,''); } var str = 'example.com/dc/fda.asp'; document.write(delExtension(str)+'<br />'); var str2 = 'test/regular/fda.do'; document.write(delExtension(str2)+'<br />'); var str3 = 'example.com/dc/fda.strange_extension'; document.write(delExtension(str3)+'<br />'); </script> </code></pre> <p>验证邮箱的正则表达式</p> <p>fuchangxi的正则:</p> <p>/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/ 开始必须是一个或者多个单词字符或者是-,加上@,然后又是一个或者多个单词字符或者是-。然后是点“.”和单词字符和-的组合,可以有一个或者多个组合。</p> <p>我不太了解邮箱的具体规则。感觉这个正则比较简单,EMAIL校验 正则 讨论 求解里有比较详细的邮箱正则讨论。</p> <p>匹配链接的文字<br> 来源:求一正则?</p> <p>代码:<a href="#>这里要保存,只保存链接的文本内容,标签信息删掉。</p> <p>前面写过一个匹配链接的正则:</p> <p>/<a\s(\s*\w*?=".+?")<em>(\s</em>href=".+?")(\s*\w*?=".+?")<em>\s</em>>[\s\S]<em>?</a>/ 不过我们需要捕获的是文字内容,所以需要做一定的修改。第一步就是在所有的括号内都加上?:表示不捕获。第二步就是再多加一个括号放在[\s\S]</em>?两侧,这样就可以捕获到链接的文字内容了。最后正则如下:</p> <p>1<br> /<a\s(?:\s*\w*?\s*=\s*".+?")<em>(?:\s</em>href\s*=\s*".+?")(?:\s*\w*?\s*=\s*".+?")<em>\s</em>>([\s\S]*?)</a>/<br> 测试代码如下:</p> <p>正则判断是否为数字与字母的混合<br> 来源:关于正则</p> <p>不能小于12位,且必须为字母和数字的混合。</p> <p>验证字符串包含数字简单,验证字符串包含字母也简单,验证字符串不包含其它字符也简单,可以用这三个正则分别检查一次字符串,逻辑运算出最终结果。</p> <p>但是怎么能把这些功能写进一个正则表达式里呢?这个问题真有点伤脑筋。</p> <p>下面是lexrus的正则:</p> <p>/^([a-z]+(?=[0-9])|[0-9]+(?=[a-z]))[a-z0-9]+$/ig 思路非常的清晰啊:</p> <p>[a-z]+(?=[0-9])</p> <p>字母开头,后面必须紧跟着数字。</p> <p>[0-9]+(?=[a-z]</p> <p>数字开头,后面必须紧跟着字母。<code>/^(([a-z]+[0-9]+)|([0-9]+[a-z]+))[a-z0-9]*$/i</code></p> <pre><code>**`/<(script|head|%)[\s\S]*?\/\1>/ig` 用正则给文本分段** **给属性添加双引号** 给HTML标签中的属性添加双引号。 <a href=xxx>改为:<a href="xxx"> LeXRus的第一个正则如下: /(?!\<\w+)(\s+\w+)\=([^>\"\s]+)/ig 第一个括号没看明白,JS应该是不支持。所以我擅自给删掉了,剩下的正则如下: /(\s+\w+)\=([^>\"\s]+)/ig 第一个括号里的\s+\w+匹配的是属性名。 然后是=,不用转义。 第二个括号里的[^>\"\s]+匹配属性值。不匹配>”和空格。这里的引号不用转义。在意思不改变的情况下,稍微改了改,正则如下: /(\s+\w+)=([^>"\s]+)/ig 需要注意的是这个正则不匹配=两边有空格的属性,例如href = xxx。相匹配的话就改成: /(\s+\w+)\s*=\s*([^>"\s]+)/ig 代码: str=str.replace(/(?!\<\w+)(\s+\w+)\=([^>\"\s]+)/ig,'$1="$2"'); 其中'$1=”$2”'就实现了给属性值添加上双引号。不过ncs指出了这个正则替换的几个问题,一是上面的空格问题,二是如果非标签内部有等号,且前面又恰巧有空白字符的话,它将会被误识别为属性,例如: <a href=xxx target=yyy title = asdfasf> test=sd 里面的test=sd也会被匹配。三是如果属性原来使用了单引号,会被再包上一层双引号…… 来看看LeXRus前辈的新正则替换方法: 1 2 str=str.replace(/(?!<\w+)(\s+\w+)\s*=\s*([^>\"\s]+)(?=[^>]*>)/ig,'$1="$2"') .replace(/\"\'([^\'\"]+)\'\"/ig,'\"$1\"'); 先来看第一个正则: / (\s+\w+)\s*=\s*([^>"\s]+)(?=[^>]*>)/ig 结尾新添的(?=[^>]*>)意在解决普通文本中有等号被误识别为属性的问题: <a href=xxx target=yyy title = asdfasf> test=sd 就没问题了,但是 <a href=xxx target=yyy title = asdfasf> test=sd<tag>又一个标签</tag> 中的test=sd<tag>又会被识别为属性。 我觉得改成下面的正则就没问题了: /(\s+\w+)\s*=\s*([^<>"\s]+)(?=[^<>]*>)/ig 分别在第二个括号的字符集合和最后的反向预查的字符集合中添加了一个<。 下面再来分析第二个正则, /\"\'([^\'\"]+)\'\"/ig 这个正则用于匹配双引号,单引号多层嵌套的情况,同样,不用转义,修改正则如下: /"'([^'"]*)'"/ig 这样基本任务就完成了。测试代码如下: </code></pre> asfd=asfd ``` <p>原帖里LeXRus又提出了新问题:</p> <p>hint=i am lexrus</p> <p>这样的属性会有问题,不过我感觉不加引号的话,属性值里就不可能有空格,否则会被识别为多个属性了。不过看到最后ncs的回帖我就哭了:</p> <p>οnclick=if(document.forms.length>0)</p> <p>这样的属性怎么办?大于号会被识别为标签结束……还是分离行为与文档吧。补充一下,其实修补一下正则也可以解决,只要改成如下正则即可:</p> <p>/(\s+\w+)\s*=\s*([<sup>"\s]+)(?=[</sup><>]*>)/ig 就是去掉第二个括号内字符集合里的<>。最后这个问题也解决。</p> <p><strong>正则替换特定单词</strong><br> 来源:正则表达式,拒绝几个单词的输入该怎样表达?</p> <p>要求禁止输入某几个单词,如果拒绝red,yellow,white。这个帖子到时不难,但是让我弄清楚了好几个概念。</p> <p>第一个,小心字符集合里的“或”</p> <p>/[^red|yellow|white]/ 这个正则里的所有或都没有意义,等同于:</p> <p>/[^redyellowwhite]/ 意思就是不能含有以下列出的所有字母。</p> <p>正解:</p> <p>/red|yellow|white/第二个概念:</p> <p>只要整个正则匹配成功,无论子正则表达式是否匹配成功,括号都会捕捉。例如</p> <p>/(red)|(yellow)|(white)/ 会捕捉到三个结果,尽管实际上最多只可能有一个括号匹配成功。但是只要有一个匹配到了,两外两个也会记录空串。</p> <p>参考博客:JavaScript中常用的正则表达式日常整理(全)</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1757704746543628288"></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">你可能感兴趣的:(JavaScript)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1938916864654635008.htm" title="【vue.js之夯实基础-3】TypeScript 入门之简介" target="_blank">【vue.js之夯实基础-3】TypeScript 入门之简介</a> <span class="text-muted">alwarse</span> <a class="tag" taget="_blank" href="/search/vuejs/1.htm">vuejs</a><a class="tag" taget="_blank" href="/search/typescript/1.htm">typescript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>教程实例参照->入门教程详细教程参照->详细教程完全教程->完全教程什么是TypeScriptTypedJavaScriptatAnyScale.添加了类型系统的JavaScript,适用于任何规模的项目。TypeScript的特性类型系统从TypeScript的名字就可以看出来,「类型」是其最核心的特性。我们知道,JavaScript是一门非常灵活的编程语言:它没有类型约束,一个变量可能初始化时</div> </li> <li><a href="/article/1938912197056983040.htm" title="uniapp uts 插件开发指南" target="_blank">uniapp uts 插件开发指南</a> <span class="text-muted">ReyZhang</span> <a class="tag" taget="_blank" href="/search/uniapp/1.htm">uniapp</a><a class="tag" taget="_blank" href="/search/ios%E5%8E%9F%E7%94%9F%E6%8F%92%E4%BB%B6%E4%B8%8E%E6%B7%B7%E5%90%88%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B/1.htm">ios原生插件与混合开发教程</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/uts/1.htm">uts</a><a class="tag" taget="_blank" href="/search/%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91/1.htm">插件开发</a> <div>一、了解基本概念1.什么是uts语言?官方:uts,全称unitypescript,统一、强类型、脚本语言。它可以被编译为不同平台的编程语言,如:web平台,编译为JavaScriptAndroid平台,编译为KotliniOS平台,编译为Swift(HX3.6.7+版本支持)harmonyOS平台,编译为ArkTS(HX4.22+版本支持)在现有架构下,ArkTS和JS在同一环境下执行,不涉及通</div> </li> <li><a href="/article/1938885213169971200.htm" title="js递归性能优化" target="_blank">js递归性能优化</a> <span class="text-muted">啃火龙果的兔子</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91DEMO/1.htm">开发DEMO</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递归性能优化递归是编程中强大的技术,但在JavaScript中如果不注意优化可能会导致性能问题甚至栈溢出。以下是几种优化递归性能的方法:1.尾调用优化(TailCallOptimization,TCO)ES6引入了尾调用优化,但只在严格模式下有效:'usestrict';//普通递归functionfactorial(n){if(n===1)return1;returnn*fa</div> </li> <li><a href="/article/1938885086799785984.htm" title="2025 VUE常见面试题" target="_blank">2025 VUE常见面试题</a> <span class="text-muted">hmildj</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>前言总结一些VUE面试的基础知识,共同学习1.什么是Vue?答案:Vue.js(通常简称为Vue)是一个用于构建用户界面的‌渐进式JavaScript框架,Vue3是Vue.js框架的最新版本,它引入了许多改进和优化,包括性能提升、更好的类型支持、组合API等。2.MVVM模式是什么?Vue如何体现这一模式?‌答案:MVVM将视图(View)与数据(Model)通过ViewModel层解耦,Vue</div> </li> <li><a href="/article/1938834150249263104.htm" title="Node.js 全局对象" target="_blank">Node.js 全局对象</a> <span class="text-muted">froginwe11</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Node.js全局对象引言Node.js作为一种流行的JavaScript运行环境,以其高性能、轻量级和跨平台的特点,被广泛应用于服务器端编程、网络应用开发等领域。在Node.js中,全局对象是一个重要的概念,它为开发者提供了一系列内置的全局变量和方法,使得编程变得更加便捷。本文将详细介绍Node.js的全局对象,帮助开发者更好地理解和运用它们。Node.js全局对象概述Node.js的全局对象指</div> </li> <li><a href="/article/1938823437304786944.htm" title="深度解析JavaScript 闭包" target="_blank">深度解析JavaScript 闭包</a> <span class="text-muted">coding随想</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</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闭包引言:为什么闭包让人又爱又怕?在JavaScript的学习过程中,闭包(Closure)是一个绕不开的“坎”。很多开发者第一次接触闭包时,会感到一头雾水:“为什么函数能记住外部作用域的变量?”、“为什么闭包会导致内存泄漏?”。但另一方面,闭包又是JavaScript最强大的特性之一,它支撑着模块化开发、数据封装、异步编程等核心场景。本文将通过通俗的语言和生动的案例,</div> </li> <li><a href="/article/1938823438114287616.htm" title="JavaScript中的函数柯里化(Currying):从概念到实战" target="_blank">JavaScript中的函数柯里化(Currying):从概念到实战</a> <span class="text-muted">coding随想</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</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/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>JavaScript中的函数柯里化(Currying):从概念到实战在JavaScript开发中,函数式编程(FunctionalProgramming)逐渐成为一种主流思想。而函数柯里化(Currying),正是这一思想中的核心技巧之一。它不仅能提升代码的复用性和灵活性,还能帮助我们构建更优雅、更模块化的解决方案。本文将带你从零开始,深入理解柯里化的原理、实现方式及实际应用场景。一、什么是函数柯</div> </li> <li><a href="/article/1938819403973980160.htm" title="webpack和vite区别" target="_blank">webpack和vite区别</a> <span class="text-muted">PromptOnce</span> <a class="tag" taget="_blank" href="/search/webpack/1.htm">webpack</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>一、Webpack1.概述Webpack是一个模块打包工具,它会递归地构建依赖关系图,并将所有模块打包成一个或多个bundle(包)。2.特点配置灵活:Webpack提供了高度可定制的配置文件,可以根据项目需求进行各种优化。生态系统丰富:Webpack拥有庞大的插件和加载器生态系统,可以处理各种资源类型(JavaScript、CSS、图片等)。支持代码拆分:通过代码拆分和懒加载,Webpack可以</div> </li> <li><a href="/article/1938815623303852032.htm" title="javascript 动态画心加文字" target="_blank">javascript 动态画心加文字</a> <span class="text-muted">das白</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81/1.htm">动态</a><a class="tag" taget="_blank" href="/search/%E5%BF%83%E5%9E%8B%E7%BA%BF/1.htm">心型线</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E5%AD%97/1.htm">文字</a> <div>测试//铺满屏幕varwidth=document.documentElement.clientWidth;varheight=document.documentElement.clientHeight;document.getElementById("gycanvas").setAttribute("width",width);document.getElementById("gycanvas"</div> </li> <li><a href="/article/1938815622305607680.htm" title="javascript 动态画心" target="_blank">javascript 动态画心</a> <span class="text-muted">das白</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81/1.htm">动态</a><a class="tag" taget="_blank" href="/search/%E5%BF%83%E5%9E%8B%E7%BA%BF/1.htm">心型线</a> <div>测试canvas{background:lawngreen;//画布背景色}//铺满屏幕varwidth=document.documentElement.clientWidth;varheight=document.documentElement.clientHeight;document.getElementById("gycanvas").setAttribute("width",width</div> </li> <li><a href="/article/1938815496078028800.htm" title="javascript 画心型线" target="_blank">javascript 画心型线</a> <span class="text-muted"></span> <div>测试canvas{background:lawngreen;//画布背景色}//铺满屏幕varwidth=document.documentElement.clientWidth;varheight=document.documentElement.clientHeight;document.getElementById("gycanvas").setAttribute("width",width</div> </li> <li><a href="/article/1938814865896435712.htm" title="掌握Web3开发:从入门到精通" target="_blank">掌握Web3开发:从入门到精通</a> <span class="text-muted">夲奋亻Jay</span> <a class="tag" taget="_blank" href="/search/Web3/1.htm">Web3</a><a class="tag" taget="_blank" href="/search/web3/1.htm">web3</a> <div>掌握Web3开发是一个涉及多个步骤和学习阶段的过程。以下是一些关键的步骤和开发案例,以及它们在搜索结果中的索引编号:了解区块链基础:学习区块链的基本概念,如去中心化、加密技术、共识机制等[1]。学习智能合约:学习智能合约的工作原理和它们在区块链上的应用,特别是以太坊平台上的智能合约[1]。掌握Web3.js或Ethers.js:学习如何使用这些JavaScript库与智能合约交互、发送交易和监听事</div> </li> <li><a href="/article/1938813857313124352.htm" title="JavaScript性能优化" target="_blank">JavaScript性能优化</a> <span class="text-muted">lyh1344</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/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性能优化方法减少重绘和回流频繁操作DOM会导致浏览器反复计算布局,引发性能问题。使用documentFragment进行批量DOM操作,或通过classList一次性修改多个样式属性。缓存DOM查询结果,避免重复访问。事件委托利用事件冒泡机制,将事件监听器绑定到父元素而非多个子元素。减少内存占用,提升动态内容的事件处理效率。节流与防抖高频事件(如滚动、输入)通过节流(Throt</div> </li> <li><a href="/article/1938811588123357184.htm" title="什么是Node.js,有什么特点" target="_blank">什么是Node.js,有什么特点</a> <span class="text-muted">前端与小赵</span> <a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>Node.js简介Node.js是一个基于ChromeV8引擎的JavaScript运行时环境,由RyanDahl于2009年创建。Node.js允许开发者使用JavaScript编写服务器端应用程序,打破了JavaScript仅限于浏览器端的限制。Node.js的设计目标是提供一种简单、高效的方式来构建可伸缩的网络应用。Node.js的特点非阻塞I/O特点:Node.js使用事件驱动的非阻塞I/</div> </li> <li><a href="/article/1938809696580333568.htm" title="Node.js到底是什么" target="_blank">Node.js到底是什么</a> <span class="text-muted">浪裡遊</span> <a class="tag" taget="_blank" href="/search/%E6%9D%82%E6%96%87/1.htm">杂文</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</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/%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/vue.js/1.htm">vue.js</a> <div>我想像是npm、vite这些名词大家都很熟悉,对它们的作用也有大致印象,但是可能都像我一样不明白Node.js到底是什么,这里给大家带来一个简单介绍。Node.js详解:历史发展、生态构建与底层原理一、Node.js的起源与历史发展诞生背景2009年5月:Node.js由RyanDahl开发并首次发布。其核心目标是解决JavaScript仅限于浏览器端运行的局限性,通过ChromeV8引擎(Jav</div> </li> <li><a href="/article/1938780700631166976.htm" title="【Html实现“心形日出”(附效果+源代码)】| JavaScript面试题:解释一下异步编程中的回调函数、Promise和Async/Await的概念。它们有什么区别?" target="_blank">【Html实现“心形日出”(附效果+源代码)】| JavaScript面试题:解释一下异步编程中的回调函数、Promise和Async/Await的概念。它们有什么区别?</a> <span class="text-muted">追光者♂</span> <a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css3/1.htm">css3</a><a class="tag" taget="_blank" href="/search/%E5%BF%83%E5%BD%A2%E6%97%A5%E5%87%BA/1.htm">心形日出</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E7%89%B9%E6%95%88/1.htm">前端特效</a><a class="tag" taget="_blank" href="/search/JS%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">JS面试题</a><a class="tag" taget="_blank" href="/search/Promise/1.htm">Promise</a><a class="tag" taget="_blank" href="/search/Async%2FAwait/1.htm">Async/Await</a> <div>风会带走你曾经存在过的证明。——虞姬作者主页:追光者♂个人简介:[1]计算机专业硕士研究生[2]2023年城市之星领跑者TOP1(哈尔滨)[3]2022年度博客之星人工智能领域TOP4[4]阿里云社区特邀专家博主[5]CSDN-人工智能领域优质创作者无限进步,一起追光!!!</div> </li> <li><a href="/article/1938750195059716096.htm" title="HTML中引入JavaScript的三种方式" target="_blank">HTML中引入JavaScript的三种方式</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/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>在HTML中引入JavaScript主要有以下三种方式,每种方式都有其适用场景和注意事项:1.内嵌方式(在标签内直接编写代码)直接在HTML文件的或中使用标签编写JavaScript代码。特点:代码与HTML混合,适用于简单逻辑或快速测试。alert()等函数会阻塞HTML页面渲染(如引用[1]所示)。示例:window.alert("页面加载被阻塞!");//阻塞后续内容渲染2.外部引入方式(推</div> </li> <li><a href="/article/1938667518176587776.htm" title="ECharts 数据集(Dataset)" target="_blank">ECharts 数据集(Dataset)</a> <span class="text-muted">沐知全栈开发</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>ECharts数据集(Dataset)引言ECharts是一个使用JavaScript实现的开源可视化库,它能够将数据通过丰富的图表形式展示出来。在ECharts中,数据集(Dataset)是一个非常重要的概念,它负责存储图表所需的数据。本文将详细介绍ECharts数据集(Dataset)的相关知识,包括其定义、作用、类型以及使用方法。数据集的定义数据集(Dataset)是ECharts中用于存储</div> </li> <li><a href="/article/1938659322720481280.htm" title="Python+Playwright(0)" target="_blank">Python+Playwright(0)</a> <span class="text-muted">黑米粥✎</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</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/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a> <div>简介Playwright是一个强大的自动化库,由微软开发,主要用于web端UI自动化测试,支持python、java、JavaScript、C#等多种编程语言。Playwright仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,不仅支持无头模式和有头模式,还提供了代码录制的功能,极大提高了脚本编写的效率,并支持移动端自动化测试。Playwright相</div> </li> <li><a href="/article/1938651882645942272.htm" title="谷歌离线应用之渐进式 Web 应用 Progressive Web APP(PWA)" target="_blank">谷歌离线应用之渐进式 Web 应用 Progressive Web APP(PWA)</a> <span class="text-muted">伍哥的传说</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%BA%90%E7%A0%81%E5%88%86%E4%BA%AB/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/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/app/1.htm">app</a> <div>一、渐进式Web应用(PWA)的定义‌渐进式Web应用(ProgressiveWebApp,PWA)是一种结合传统Web技术与现代移动应用特性的技术方案,旨在通过HTML、CSS和JavaScript构建具备‌原生应用体验‌的Web应用。其核心特性包括:‌可安装性‌:用户可将PWA添加到设备主屏幕,像原生应用一样独立运行;‌渐进增强‌:根据设备和网络环境逐步提升功能,确保基础功能在所有浏览器中可用</div> </li> <li><a href="/article/1938633356505837568.htm" title="JavaScript性能优化实战" target="_blank">JavaScript性能优化实战</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/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/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性能优化。你可能觉得这听起来很复杂,但别怕,我保证用最简单的方式给你讲清楚,就算你是0基础也没问题!一、为啥要优化JavaScript性能?想象一下,你在网上冲浪,点开一个网页,结果半天加载不出来,或者页面卡得像蜗牛爬,那心情是不是超级糟糕?这就是性能问题惹的祸。而JavaScript是网页里很重要的部分,它能让网页动起来、交互起来,但如果写得不好,</div> </li> <li><a href="/article/1938609778896990208.htm" title="【架构】vue-cli集成electron" target="_blank">【架构】vue-cli集成electron</a> <span class="text-muted">Fiz-EIM官方</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/electron/1.htm">electron</a> <div>一、引言在文章开始之前,需要先介绍一下webpack和electron;Webpack:是一个用于现代JavaScript应用程序的静态模块打包工具。Electron:Electron是一个使用JavaScript、HTML和CSS构建桌面应用程序的框架。当遇到需要将原本是web端的应用打包成桌面端的需求时,就可以采用webpack+electron的方式来开发桌面端,这种方式有以下四点好处:原项</div> </li> <li><a href="/article/1938595784018685952.htm" title="箭头函数和普通函数的区别?" target="_blank">箭头函数和普通函数的区别?</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>箭头函数(ArrowFunctions)和普通函数(传统函数)在JavaScript中有显著的区别,主要体现在语法、this的绑定、构造函数行为、参数处理等方面。以下是详细对比:1.语法差异普通函数:functionadd(a,b){returna+b;}或函数表达式:constadd=function(a,b){returna+b;};箭头函数(更简洁):constadd=(a,b)=>a+b;</div> </li> <li><a href="/article/1938595784480059392.htm" title="浅说深拷贝(Deep Copy)与浅拷贝(Shallow Copy)" target="_blank">浅说深拷贝(Deep Copy)与浅拷贝(Shallow Copy)</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%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中,深拷贝和浅拷贝是两种不同的数据复制方式,主要区别在于如何处理引用类型数据(如对象、数组)。1.浅拷贝(ShallowCopy)定义:只复制对象的第一层属性,如果属性是引用类型(如对象、数组),则复制的是引用,而不是实际数据。特点:原始对象和拷贝后的对象共享引用类型的属性。修改其中一个对象的引用类型属性会影响另一个对象。实现方式:Object.assign()(仅第一层深拷</div> </li> <li><a href="/article/1938577877800906752.htm" title="使用JavaScript构建交互式Web页面:从基础到高级功能(附带实现代码~)" target="_blank">使用JavaScript构建交互式Web页面:从基础到高级功能(附带实现代码~)</a> <span class="text-muted">一ge科研小菜菜</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/1.htm">前端开发</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>个人主页:一ge科研小菜鸡-CSDN博客期待您的关注1.引言JavaScript作为现代网页设计的核心技术之一,已发展成为前端开发中必不可少的编程语言。随着互联网的不断进化,用户对网页体验的需求日益增长,开发者需要借助JavaScript来实现页面动态交互、用户界面更新和复杂的数据操作。JavaScript的生态系统也日趋完善,从基础的ES6+特性到各种强大的前端框架如React、Vue和Angu</div> </li> <li><a href="/article/1938566904583090176.htm" title="JavaScript原型链深度剖析" target="_blank">JavaScript原型链深度剖析</a> <span class="text-muted">aike13ky</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> <div>目录前言一、原型链1.原型链的主要组成原型(Prototype)构造函数(Constructor)实例(Instance)2.原型链的工作原理前言在JavaScript的世界中,原型链(PrototypeChain)是一个核心概念,它决定了对象如何继承属性和方法。对于初学者来说,理解原型链可能是个挑战,但一旦掌握了它,就能更好地利用JavaScript的动态性和灵活性。本篇文章将详细探讨JavaS</div> </li> <li><a href="/article/1938546609432358912.htm" title="HarmonyOs开发之——TypeScript介绍、入门,及 TypeScript、JavaScript、ArkTs的具体区别解读。" target="_blank">HarmonyOs开发之——TypeScript介绍、入门,及 TypeScript、JavaScript、ArkTs的具体区别解读。</a> <span class="text-muted">chenrui310</span> <a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>HarmonyOs开发之——TypeScript介绍、入门,及TypeScript、JavaScript、ArkTs的具体区别解读。一、开发语言介绍:TypeScript是JavaScript的超集,ArkTS则是TypeScript的超集。ArkTs是HarmonyOs的主力开发语言,它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发</div> </li> <li><a href="/article/1938527199187496960.htm" title="Array.reduce" target="_blank">Array.reduce</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%89%8D%E7%AB%AF/1.htm">前端</a> <div>Array.reduce()是JavaScript中用于将数组元素累积计算为单个值的高阶函数,其核心作用是对数组中的每个元素执行一个累加器函数,最终返回累积结果。以下是详细用法和示例:一、基本语法array.reduce((accumulator,currentValue,currentIndex,array)=>{//累加逻辑returnnewAccumulator;},initialValue</div> </li> <li><a href="/article/1938524425443930112.htm" title="Python JSON 模块的基本使用(41)" target="_blank">Python JSON 模块的基本使用(41)</a> <span class="text-muted">Android 小码峰啊</span> <a class="tag" taget="_blank" href="/search/Python%E5%85%A5%E9%97%A8/1.htm">Python入门</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>PythonJSON模块的基本使用一、引言在当今数字化的时代,数据的交换和存储变得至关重要。不同的应用程序和系统之间需要一种通用的数据格式来进行数据的传输和共享。JSON(JavaScriptObjectNotation)作为一种轻量级的数据交换格式,因其易于阅读和编写,同时也易于机器解析和生成,成为了广泛使用的数据格式之一。Python作为一门功能强大且应用广泛的编程语言,提供了json模块来方</div> </li> <li><a href="/article/1938517366061199360.htm" title="深入理解CSRF攻击与防护机制" target="_blank">深入理解CSRF攻击与防护机制</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/csrf/1.htm">csrf</a><a class="tag" taget="_blank" href="/search/%E9%98%B2%E6%8A%A4%E6%9C%BA%E5%88%B6/1.htm">防护机制</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>Hi,我是布兰妮甜!在当今高度互联的Web应用环境中,安全威胁无处不在。CSRF(跨站请求伪造)作为一种常见的Web安全漏洞,长期位居OWASPTop10安全威胁榜单。这种攻击方式利用了网站对用户浏览器的信任,可能导致用户在不知情的情况下执行非预期的操作,如资金转账、密码更改等。本文将深入剖析CSRF攻击原理,详细介绍多种有效的防护机制,并提供实用的JavaScript代码示例,帮助开发者构建更加</div> </li> <li><a href="/article/62.htm" title="关于旗正规则引擎下载页面需要弹窗保存到本地目录的问题" target="_blank">关于旗正规则引擎下载页面需要弹窗保存到本地目录的问题</a> <span class="text-muted">何必如此</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/%E8%B6%85%E9%93%BE%E6%8E%A5/1.htm">超链接</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E4%B8%8B%E8%BD%BD/1.htm">文件下载</a><a class="tag" taget="_blank" href="/search/%E7%AA%97%E5%8F%A3/1.htm">窗口</a> <div>生成下载页面是需要选择“录入提交页面”,生成之后默认的下载页面<a>标签超链接为:<a href="<%=root_stimage%>stimage/image.jsp?filename=<%=strfile234%>&attachname=<%=java.net.URLEncoder.encode(file234filesourc</div> </li> <li><a href="/article/189.htm" title="【Spark九十八】Standalone Cluster Mode下的资源调度源代码分析" target="_blank">【Spark九十八】Standalone Cluster Mode下的资源调度源代码分析</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/cluster/1.htm">cluster</a> <div>在分析源代码之前,首先对Standalone Cluster Mode的资源调度有一个基本的认识: 首先,运行一个Application需要Driver进程和一组Executor进程。在Standalone Cluster Mode下,Driver和Executor都是在Master的监护下给Worker发消息创建(Driver进程和Executor进程都需要分配内存和CPU,这就需要Maste</div> </li> <li><a href="/article/316.htm" title="linux上独立安装部署spark" target="_blank">linux上独立安装部署spark</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85/1.htm">安装</a><a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a><a class="tag" taget="_blank" href="/search/1.4/1.htm">1.4</a><a class="tag" taget="_blank" href="/search/%E9%83%A8%E7%BD%B2/1.htm">部署</a> <div>下面讲一下linux上安装spark,以 Standalone Mode 安装   1)首先安装JDK   下载JDK:jdk-7u79-linux-x64.tar.gz  ,版本是1.7以上都行,解压 tar -zxvf jdk-7u79-linux-x64.tar.gz     然后配置 ~/.bashrc&nb</div> </li> <li><a href="/article/443.htm" title="Java 字节码之解析一" target="_blank">Java 字节码之解析一</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E8%8A%82%E7%A0%81/1.htm">字节码</a><a class="tag" taget="_blank" href="/search/javap/1.htm">javap</a> <div>    一: Java 字节代码的组织形式   类文件 {     OxCAFEBABE ,小版本号,大版本号,常量池大小,常量池数组,访问控制标记,当前类信息,父类信息,实现的接口个数,实现的接口信息数组,域个数,域信息数组,方法个数,方法信息数组,属性个数,属性信息数组 } &nbs</div> </li> <li><a href="/article/570.htm" title="java各种小工具代码" target="_blank">java各种小工具代码</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1.数组转换成List import java.util.Arrays; Arrays.asList(Object[] obj); 2.判断一个String型是否有值 import org.springframework.util.StringUtils; if (StringUtils.hasText(str)) 3.判断一个List是否有值 import org.spring</div> </li> <li><a href="/article/697.htm" title="加快FineReport报表设计的几个心得体会" target="_blank">加快FineReport报表设计的几个心得体会</a> <span class="text-muted">老A不折腾</span> <a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a> <div>一、从远程服务器大批量取数进行表样设计时,最好按“列顺序”取一个“空的SQL语句”,这样可提高设计速度。否则每次设计时模板均要从远程读取数据,速度相当慢!! 二、找一个富文本编辑软件(如NOTEPAD+)编辑SQL语句,这样会很好地检查语法。有时候带参数较多检查语法复杂时,结合FineReport中生成的日志,再找一个第三方数据库访问软件(如PL/SQL)进行数据检索,可以很快定位语法错误。 </div> </li> <li><a href="/article/824.htm" title="mysql linux启动与停止" target="_blank">mysql linux启动与停止</a> <span class="text-muted">墙头上一根草</span> <div>如何启动/停止/重启MySQL一、启动方式1、使用 service 启动:service mysqld start2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start3、使用 safe_mysqld 启动:safe_mysqld&二、停止1、使用 service 启动:service mysqld stop2、使用 mysqld 脚本启动:/etc/inin</div> </li> <li><a href="/article/951.htm" title="Spring中事务管理浅谈" target="_blank">Spring中事务管理浅谈</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1%E7%AE%A1%E7%90%86/1.htm">事务管理</a> <div> Spring中事务管理浅谈 By Tony Jiang@2012-1-20 Spring中对事务的声明式管理 拿一个XML举例 [html]  view plain copy print ? <?xml version="1.0" encoding="UTF-8"?>&nb</div> </li> <li><a href="/article/1078.htm" title="php中隐形字符65279(utf-8的BOM头)问题" target="_blank">php中隐形字符65279(utf-8的BOM头)问题</a> <span class="text-muted">alxw4616</span> <div>php中隐形字符65279(utf-8的BOM头)问题 今天遇到一个问题. php输出JSON 前端在解析时发生问题:parsererror.   调试: 1.仔细对比字符串发现字符串拼写正确.怀疑是 非打印字符的问题. 2.逐一将字符串还原为unicode编码. 发现在字符串头的位置出现了一个 65279的非打印字符.        </div> </li> <li><a href="/article/1205.htm" title="调用对象是否需要传递对象(初学者一定要注意这个问题)" target="_blank">调用对象是否需要传递对象(初学者一定要注意这个问题)</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E5%AF%B9%E8%B1%A1%E7%9A%84%E4%BC%A0%E9%80%92%E4%B8%8E%E8%B0%83%E7%94%A8%E6%8A%80%E5%B7%A7/1.htm">对象的传递与调用技巧</a> <div>    类和对象的简单的复习,在做项目的过程中有时候不知道怎样来调用类创建的对象,简单的几个类可以看清楚,一般在项目中创建十几个类往往就不知道怎么来看   为了以后能够看清楚,现在来回顾一下类和对象的创建,对象的调用和传递(前面写过一篇)   类和对象的基础概念:   JAVA中万事万物都是类 类有字段(属性),方法,嵌套类和嵌套接</div> </li> <li><a href="/article/1332.htm" title="JDK1.5 AtomicLong实例" target="_blank">JDK1.5 AtomicLong实例</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a><a class="tag" taget="_blank" href="/search/AtomicLong/1.htm">AtomicLong</a> <div>JDK1.5 AtomicLong实例 类 AtomicLong 可以用原子方式更新的 long 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicLong 可用在应用程序中(如以原子方式增加的序列号),并且不能用于替换 Long。但是,此类确实扩展了 Number,允许那些处理基于数字类的工具和实用工具进行统一访问。  </div> </li> <li><a href="/article/1459.htm" title="自定义的RPC的Java实现" target="_blank">自定义的RPC的Java实现</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a> <div>        网上看到纯java实现的RPC,很不错。         RPC的全名Remote Process Call,即远程过程调用。使用RPC,可以像使用本地的程序一样使用远程服务器上的程序。下面是一个简单的RPC 调用实例,从中可以看到RPC如何</div> </li> <li><a href="/article/1586.htm" title="【RPC框架Hessian一】Hessian RPC Hello World" target="_blank">【RPC框架Hessian一】Hessian RPC Hello World</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Hello+world/1.htm">Hello world</a> <div>什么是Hessian The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary p</div> </li> <li><a href="/article/1713.htm" title="【Spark九十五】Spark Shell操作Spark SQL" target="_blank">【Spark九十五】Spark Shell操作Spark SQL</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a> <div>在Spark Shell上,通过创建HiveContext可以直接进行Hive操作   1. 操作Hive中已存在的表   [hadoop@hadoop bin]$ ./spark-shell Spark assembly has been built with Hive, including Datanucleus jars on classpath Welcom</div> </li> <li><a href="/article/1840.htm" title="F5 往header加入客户端的ip" target="_blank">F5 往header加入客户端的ip</a> <span class="text-muted">ronin47</span> <div>when HTTP_RESPONSE {if {[HTTP::is_redirect]}{         HTTP::header replace Location [string map {:port/ /} [HTTP::header value Location]]HTTP::header replace Lo</div> </li> <li><a href="/article/1967.htm" title="java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5," target="_blank">java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5,</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>思路来自: http://zhedahht.blog.163.com/blog/static/2541117420116135376632/ 写了个java版的 public class GreatestLeftRightDiff { /** * Q61.在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差。 * 求所有数对之差的最大值。例如在数组</div> </li> <li><a href="/article/2094.htm" title="mongoDB 索引" target="_blank">mongoDB 索引</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/mongoDB%E7%B4%A2%E5%BC%95/1.htm">mongoDB索引</a> <div>在这一节中我们讲讲在mongo中如何创建索引       得到当前查询的索引信息      db.user.find(_id:12).explain();        cursor: basicCoursor 指的是没有索引  &</div> </li> <li><a href="/article/2221.htm" title="[硬件和系统]迎峰度夏" target="_blank">[硬件和系统]迎峰度夏</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F/1.htm">系统</a> <div>  从这几天的气温来看,今年夏天的高温天气可能会维持在一个比较长的时间内    所以,从现在开始准备渡过炎热的夏天。。。。    每间房屋要有一个落地电风扇,一个空调(空调的功率和房间的面积有密切的关系)    坐的,躺的地方要有凉垫,床上要有凉席       电脑的机箱</div> </li> <li><a href="/article/2348.htm" title="基于ThinkPHP开发的公司官网" target="_blank">基于ThinkPHP开发的公司官网</a> <span class="text-muted">cuiyadll</span> <a class="tag" taget="_blank" href="/search/%E8%A1%8C%E4%B8%9A%E7%B3%BB%E7%BB%9F/1.htm">行业系统</a> <div>后端基于ThinkPHP,前端基于jQuery和BootstrapCo.MZ 企业系统 轻量级企业网站管理系统 运行环境:PHP5.3+, MySQL5.0 系统预览 系统下载:http://www.tecmz.com 预览地址:http://co.tecmz.com 各种设备自适应 响应式的网站设计能够对用户产生友好度,并且对于</div> </li> <li><a href="/article/2475.htm" title="Transaction and redelivery in JMS (JMS的事务和失败消息重发机制)" target="_blank">Transaction and redelivery in JMS (JMS的事务和失败消息重发机制)</a> <span class="text-muted">darrenzhu</span> <a class="tag" taget="_blank" href="/search/jms/1.htm">jms</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1/1.htm">事务</a><a class="tag" taget="_blank" href="/search/%E6%89%BF%E8%AE%A4/1.htm">承认</a><a class="tag" taget="_blank" href="/search/MQ/1.htm">MQ</a><a class="tag" taget="_blank" href="/search/acknowledge/1.htm">acknowledge</a> <div>JMS Message Delivery Reliability and Acknowledgement Patterns http://wso2.com/library/articles/2013/01/jms-message-delivery-reliability-acknowledgement-patterns/ Transaction and redelivery in </div> </li> <li><a href="/article/2602.htm" title="Centos添加硬盘完全教程" target="_blank">Centos添加硬盘完全教程</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/hardware/1.htm">hardware</a> <div>Linux的硬盘识别: sda        表示第1块SCSI硬盘 hda       表示第1块IDE硬盘 scd0      表示第1个USB光驱 一般使用“fdisk -l”命</div> </li> <li><a href="/article/2729.htm" title="yii2 restful web服务路由" target="_blank">yii2 restful web服务路由</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/yii2/1.htm">yii2</a> <div>路由 随着资源和控制器类准备,您可以使用URL如 http://localhost/index.php?r=user/create访问资源,类似于你可以用正常的Web应用程序做法。 在实践中,你通常要用美观的URL并采取有优势的HTTP动词。 例如,请求POST /users意味着访问user/create动作。 这可以很容易地通过配置urlManager应用程序组件来完成 如下所示</div> </li> <li><a href="/article/2856.htm" title="MongoDB查询(4)——游标和分页[八]" target="_blank">MongoDB查询(4)——游标和分页[八]</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/MongoDB%E6%B8%B8%E6%A0%87/1.htm">MongoDB游标</a><a class="tag" taget="_blank" href="/search/MongoDB%E6%B7%B1%E5%88%86%E9%A1%B5/1.htm">MongoDB深分页</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2177567 一、游标         数据库使用游标返回find的执行结果。客户端对游标的实现通常能够对最终结果进行有效控制,从shell中定义一个游标非常简单,就是将查询结果分配给一个变量(用var声明的变量就是局部变量),便创建了一个游标,如下所示: > var </div> </li> <li><a href="/article/2983.htm" title="Activity的四种启动模式和onNewIntent()" target="_blank">Activity的四种启动模式和onNewIntent()</a> <span class="text-muted">gundumw100</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>Android中Activity启动模式详解   在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。   Android总Activity的启动模式分为四种: Activity启动模式设置: <acti</div> </li> <li><a href="/article/3110.htm" title="攻城狮送女友的CSS3生日蛋糕" target="_blank">攻城狮送女友的CSS3生日蛋糕</a> <span class="text-muted">ini</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/css3/1.htm">css3</a> <div>在线预览:http://keleyi.com/keleyi/phtml/html5/29.htm   代码如下:   <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>攻城狮送女友的CSS3生日蛋糕-柯乐义<</div> </li> <li><a href="/article/3237.htm" title="读源码学Servlet(1)GenericServlet 源码分析" target="_blank">读源码学Servlet(1)GenericServlet 源码分析</a> <span class="text-muted">jzinfo</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8/1.htm">网络应用</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a> <div>Servlet API的核心就是javax.servlet.Servlet接口,所有的Servlet 类(抽象的或者自己写的)都必须实现这个接口。在Servlet接口中定义了5个方法,其中有3个方法是由Servlet 容器在Servlet的生命周期的不同阶段来调用的特定方法。     先看javax.servlet.servlet接口源码:  package </div> </li> <li><a href="/article/3364.htm" title="JAVA进阶:VO(DTO)与PO(DAO)之间的转换" target="_blank">JAVA进阶:VO(DTO)与PO(DAO)之间的转换</a> <span class="text-muted">snoopy7713</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/po/1.htm">po</a> <div>  PO即 Persistence Object  VO即 Value Object  VO和PO的主要区别在于:  VO是独立的Java Object。  PO是由Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实际数据库中。  实际上,这个VO被用作Data Transfer </div> </li> <li><a href="/article/3491.htm" title="mongodb group by date 聚合查询日期 统计每天数据(信息量)" target="_blank">mongodb group by date 聚合查询日期 统计每天数据(信息量)</a> <span class="text-muted">qiaolevip</span> <a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/%E7%BA%B5%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">纵观千象</a> <div>/* 1 */ { "_id" : ObjectId("557ac1e2153c43c320393d9d"), "msgType" : "text", "sendTime" : ISODate("2015-06-12T11:26:26.000Z")</div> </li> <li><a href="/article/3618.htm" title="java之18天 常用的类(一)" target="_blank">java之18天 常用的类(一)</a> <span class="text-muted">Luob.</span> <a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a><a class="tag" taget="_blank" href="/search/Date/1.htm">Date</a><a class="tag" taget="_blank" href="/search/System/1.htm">System</a><a class="tag" taget="_blank" href="/search/Runtime/1.htm">Runtime</a><a class="tag" taget="_blank" href="/search/Rundom/1.htm">Rundom</a> <div>System类 import java.util.Properties; /** * System: * out:标准输出,默认是控制台 * in:标准输入,默认是键盘 * * 描述系统的一些信息 * 获取系统的属性信息:Properties getProperties(); * * * */ public class Sy</div> </li> <li><a href="/article/3745.htm" title="maven" target="_blank">maven</a> <span class="text-muted">wuai</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>1、安装maven:解压缩、添加M2_HOME、添加环境变量path 2、创建maven_home文件夹,创建项目mvn_ch01,在其下面建立src、pom.xml,在src下面简历main、test、main下面建立java文件夹 3、编写类,在java文件夹下面依照类的包逐层创建文件夹,将此类放入最后一级文件夹 4、进入mvn_ch01 4.1、mvn compile ,执行后会在</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>