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/1950232820773351424.htm" title="移动端城市区县二级联动选择功能实现包" target="_blank">移动端城市区县二级联动选择功能实现包</a> <span class="text-muted">good2know</span> <div>本文还有配套的精品资源,点击获取简介:本项目是一套为移动端设计的jQuery实现方案,用于简化用户在选择城市和区县时的流程。它包括所有必需文件:HTML、JavaScript、CSS及图片资源。通过动态更新下拉菜单选项,实现城市到区县的联动效果,支持数据异步加载。开发者可以轻松集成此功能到移动网站或应用,并可基于需求进行扩展和优化。1.jQuery移动端解决方案概述jQuery技术简介jQuery</div> </li> <li><a href="/article/1950194742100815872.htm" title="用代码生成艺术字:设计个性化海报的秘密" target="_blank">用代码生成艺术字:设计个性化海报的秘密</a> <span class="text-muted"></span> <div>本文围绕“用代码生成艺术字:设计个性化海报的秘密”展开,先概述代码生成艺术字在海报设计中的独特价值,接着介绍常用的代码工具(如HTML、CSS、JavaScript等),详细阐述从构思到实现的完整流程,包括字体样式设计、动态效果添加等,还分享了提升艺术字质感的技巧及实际案例。最后总结代码生成艺术字的优势,为设计师提供打造个性化海报的实用指南,助力提升海报设计的独特性与吸引力,符合搜索引擎SEO标准</div> </li> <li><a href="/article/1950144218282389504.htm" title="为什么学习Web前端一定要掌握JavaScript?" target="_blank">为什么学习Web前端一定要掌握JavaScript?</a> <span class="text-muted">web前端学习指南</span> <div>为什么学习Web前端一定要掌握JavaScript?在前端的世界里,没有什么是JavaScript实现不了的,关于JS有一句话:凡是可以用JavaScript来写的应用,最终都会用JavaScript,JavaScript可运行在所有主要平台的所有主流浏览器上,也可运行在每一个主流操作系统的服务器端上。现如今我们在为网站写任何一个主要功能的时候都需要有懂能够用JavaScript写前端的开发人员。</div> </li> <li><a href="/article/1950130692448907264.htm" title="Vue CSR 到 Nuxt 3 SSR 迁移:技术实现与问题解决实录" target="_blank">Vue CSR 到 Nuxt 3 SSR 迁移:技术实现与问题解决实录</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/vue.js/1.htm">vue.js</a> <div>1.迁移动机与技术选型1.1CSR架构的局限性基于Vue3和Vite构建的客户端渲染(CSR)单页应用(SPA)提供了良好的开发体验和用户交互流畅性。但是其核心局限在于:搜索引擎优化(SEO):初始HTML响应仅包含一个根div元素,实际内容由JavaScript在浏览器端动态生成。虽然主流搜索引擎(如Google)能够执行部分JavaScript,但其抓取效率和稳定性不如直接获取完整HTML。非</div> </li> <li><a href="/article/1950114810557427712.htm" title="12. 什么是事件委托" target="_blank">12. 什么是事件委托</a> <span class="text-muted">yqcoder</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95-CSS/1.htm">前端面试-CSS</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>总结事件委托(EventDelegation)是JavaScript中一种重要的事件处理机制,它利用了事件冒泡的特性,将事件的处理程序绑定到父元素或祖先元素上,而不是直接绑定到具体的子元素上。什么是事件委托?事件冒泡:在DOM中,事件通常会从触发元素开始,然后逐级向上冒泡到其父元素、祖先元素,直到window对象。核心思想:事件委托的核心思想是利用事件冒泡机制,在父元素上监听事件,而不是在每个子元</div> </li> <li><a href="/article/1950075480849838080.htm" title="关于前端的性能优化" target="_blank">关于前端的性能优化</a> <span class="text-muted"></span> <div>性能优化主要涵盖了以下四个方面:(tip:仅代表个人总结,如有不当,还希望看到的大佬多多指示)减少网络请求:合并文件、使用CDN、启用缓存。优化资源加载:代码分割、懒加载、图片压缩。提升渲染性能:减少重绘回流、防抖节流、使用WebWorker。监控和迭代:定期使用工具检测性能,持续优化。一、网络层面优化减少HTTP请求合并文件:将多个CSS或JavaScript文件合并成一个,减少请求次数。使用C</div> </li> <li><a href="/article/1950074093608955904.htm" title="时间组件库Day.js那些事" target="_blank">时间组件库Day.js那些事</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><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>一、简介1.什么是Day.jsDay.js是一个轻量级,易于使用的JavaScript日期库,提供了强大的日期和时间处理功能,与Moment.js的API设计相似,但具有更高的性能和更小的体积。Day.js官网https://day.js.org/docs/zh-CN/installation/installation2.优势a.特点轻量级:Dayjs的压缩后大小只有2KB左右,远小于Moment</div> </li> <li><a href="/article/1950071066281963520.htm" title="JavaScript正则表达式去除括号但保留内容与去除括号与内容" target="_blank">JavaScript正则表达式去除括号但保留内容与去除括号与内容</a> <span class="text-muted">Selicens</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</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> <div>项目上碰到一个需求,是取多个递增文件的文件名,类似于test(1).txt、test(2).txt,但是不需要括号,只要test1、test2这种格式,最开始想到的办法就是js里的replace替换,先上一个比较笨但是也能实现效果的例子letname="test(1).txt"letdata=name.split('.')[0].replace('(','').replace(')','')con</div> </li> <li><a href="/article/1950042324155297792.htm" title="网络安全第14集" target="_blank">网络安全第14集</a> <span class="text-muted">不灭锦鲤</span> <a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>前言:小迪安全14集,这集重点内容:0、什么是js渗透测试?在javascript中也存在变量和函数,存在可控变量和函数就有可能存在在漏洞,js开发的web应用和php、java开发的区别是,js能看得到的源代码,php看不到,但是风险就是未授权访问、配置信息泄露(加密算法、key秘钥等),源代码看得到,存在更多的url泄露,从而可能会出现未授权访问,从url,前提:web应用可以采用前端语言或后</div> </li> <li><a href="/article/1950040812469415936.htm" title="25年不倒的“犀牛书“:为什么《JavaScript权威指南第7版》仍是程序员的案头圣经?" target="_blank">25年不倒的“犀牛书“:为什么《JavaScript权威指南第7版》仍是程序员的案头圣经?</a> <span class="text-muted">阿蒙Armon</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>25年不倒的"犀牛书":为什么《JavaScript权威指南第7版》仍是程序员的案头圣经?当一本技术书能连续畅销25年,历经7次迭代仍稳坐领域第一梯队,它必然藏着超越时代的硬实力。《JavaScript权威指南(原书第7版)》就是这样一部传奇——豆瓣9.4分的封神之作,程序员口中的"犀牛书",从网景时代到ES2020,它始终是JavaScript开发者的终极参考书。如果你还在为原型链、闭包、异步编</div> </li> <li><a href="/article/1949995914462556160.htm" title="什么是JSON,如何与Java对象转化" target="_blank">什么是JSON,如何与Java对象转化</a> <span class="text-muted">doublez234</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a> <div>JSON概念JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它易于人阅读和编写,同时也易于机器解析和生成。JSON基于JavaScript(ECMAScript(欧洲计算机协会制定的js规范))编程语言的一个子集,但它是一种独立于语言的数据格式,被广泛应用于各种编程语言和平台之间的数据交换。JSON的主要特点:轻量级:JSON格式非常简洁,只包含必要的数据信</div> </li> <li><a href="/article/1949975484238458880.htm" title="APP开发入门:了解主流的编程语言" target="_blank">APP开发入门:了解主流的编程语言</a> <span class="text-muted">agi大模型</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E4%B8%9A%E4%B8%8E%E8%81%8C%E5%9C%BA/1.htm">职业与职场</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/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><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a> <div>前言在过去的几年里,有许多程序员开始学习和使用编程语言。这其中包括C、C++、Java和Python。尽管有许多语言可供选择,但大多数程序员都会选择最容易学习的编程语言。如今,有很多编程语言供选择。程序员们在学习这些语言时可以自由地选择他们喜欢的方式,因为他们的目标是构建任何软件,而不仅仅是创建一个应用程序。你可以在Linux上学习C/C++、Java、Python、C#或JavaScript,你</div> </li> <li><a href="/article/1949928456414359552.htm" title="探秘CommonJS:Node.js模块化核心解析" target="_blank">探秘CommonJS:Node.js模块化核心解析</a> <span class="text-muted"></span> <div>CommonJS是JavaScript的模块化规范,主要应用于服务器端环境(尤其是Node.js),其核心目标是解决代码组织、依赖管理和作用域隔离问题。以下是其核心要点:一、核心特性同步加载模块通过require()同步加载并执行,后续代码需等待模块加载完成后执行,适用于I/O快速的服务器环境(如本地文件读取)。作用域隔离每个文件视为独立模块,模块内定义的变量、函数默认私有(不污染全局作用域),仅</div> </li> <li><a href="/article/1949926944988524544.htm" title="壹脉销客AI电子名片源码核心架构" target="_blank">壹脉销客AI电子名片源码核心架构</a> <span class="text-muted"></span> <div>为什么选择源码部署AI电子名片?在数字化转型浪潮中,越来越多的企业意识到拥有自主可控的电子名片系统的重要性。源码部署相比SaaS服务具有三大核心优势:数据完全自主-客户信息存储在企业自有服务器深度定制自由-可根据业务需求二次开发长期成本优化-一次部署永久使用壹脉销客AI电子名片源码核心架构壹脉销客提供的企业级电子名片解决方案采用前后端分离架构:前端技术栈(小程序端)javascript//小程序a</div> </li> <li><a href="/article/1949918371738873856.htm" title="vue 进入一个页面,然后离开这个页面他就重新加载" target="_blank">vue 进入一个页面,然后离开这个页面他就重新加载</a> <span class="text-muted">Java&Develop</span> <a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a> <div>vue进入一个页面,然后离开这个页面他就重新加载这个代码导致的注释即可window.location.reload();window.location.reload()是JavaScript中的一个方法,用于强制刷新当前页面(重新加载页面内容)。其作用类似于用户手动点击浏览器的刷新按钮,但可以通过代码精确触发。核心作用:刷新页面重新加载当前显示的文档(即重新请求当前URL的资源)。可选参数控制缓存</div> </li> <li><a href="/article/1949898570761039872.htm" title="[python][flask]flask静态资源" target="_blank">[python][flask]flask静态资源</a> <span class="text-muted"></span> <div>在Flask中,静态资源(如图片、CSS文件、JavaScript文件等)通常存储在项目的static文件夹中。Flask会自动为静态资源提供服务,使得你可以通过URL访问这些文件。以下是关于Flask中静态资源的使用方法和一些高级配置。1.默认静态文件夹Flask默认会将项目根目录下的static文件夹作为静态资源目录。例如,如果你的项目结构如下:my_flask_app/│├──app.py├</div> </li> <li><a href="/article/1949894278360657920.htm" title="JavaScript对象与Math对象完全指南" target="_blank">JavaScript对象与Math对象完全指南</a> <span class="text-muted">hui函数</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%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对象与Math对象完全指南对象基础概念与操作对象是什么?数据集合:包含相关数据和功能的容器结构组成:属性:描述对象特征的变量(名词性)方法:对象可执行的操作(动词性,本质是函数)对象创建与访问//创建对象letperson={ //属性 name:"张三", age:28, profession:"软件工程师",  //方法 introduce(){  return`大家好,我</div> </li> <li><a href="/article/1949892133389398016.htm" title="深入理解JavaScript作用域与编译过程" target="_blank">深入理解JavaScript作用域与编译过程</a> <span class="text-muted">君子心理</span> <a class="tag" taget="_blank" href="/search/%E4%BD%9C%E7%94%A8%E5%9F%9F/1.htm">作用域</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%AF%91/1.htm">编译</a><a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E5%8F%98%E9%87%8F%E6%8F%90%E5%8D%87/1.htm">变量提升</a><a class="tag" taget="_blank" href="/search/%E9%97%AD%E5%8C%85/1.htm">闭包</a> <div>背景简介在编程领域,作用域和编译过程是理解语言机制的关键概念。JavaScript作为一种广泛使用的语言,其作用域规则和编译机制尤其值得我们深入探讨。本文将基于《你不懂JS》系列书籍中的相关内容,解析JavaScript的作用域系统、函数闭包以及编译过程,帮助读者获得更深层次的理解。作用域是什么?在JavaScript中,作用域定义了变量和函数的可访问范围。编写程序时,我们会频繁使用变量来存储和操</div> </li> <li><a href="/article/1949892007069544448.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/%E5%AF%B9%E8%B1%A1/1.htm">对象</a><a class="tag" taget="_blank" href="/search/%E5%8E%9F%E5%9E%8B%E9%93%BE/1.htm">原型链</a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0/1.htm">函数</a><a class="tag" taget="_blank" href="/search/%E4%BD%9C%E7%94%A8%E5%9F%9F/1.htm">作用域</a> <div>掌握JavaScript对象与函数:深入理解原型与作用域背景简介在探索JavaScript的世界时,我们经常遇到对象和函数这两个核心概念。对象是JavaScript中最为基本的结构之一,而函数则是实现代码复用、封装和模块化的主要工具。本文将基于给定的书籍章节内容,深入探讨对象的更新机制、原型继承以及函数的多样性及其调用模式,同时分享对全局变量使用的思考。更新对象在JavaScript中,对象的属性</div> </li> <li><a href="/article/1949891377278021632.htm" title="JavaScript函数使用模式与作用域的深入解析" target="_blank">JavaScript函数使用模式与作用域的深入解析</a> <span class="text-muted"></span> <div>JavaScript函数使用模式与作用域的深入解析JavaScript作为一门灵活且功能强大的编程语言,其函数的使用和作用域的特性是学习和开发中的关键点。本篇博客将深入解析JavaScript函数的几种使用模式,以及作用域的重要概念。构造器模式在JavaScript中,函数可以作为构造器(constructor)使用,当用new关键字调用时,函数会返回一个新对象。为了区分构造器函数和其他普通函数,</div> </li> <li><a href="/article/1949890620248092672.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/%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中的函数和作用域知识。任务目标通过本教程,你将学习并掌握:函数的声明与调用函数表达式的使用作用域的概念及其在函数中的应用闭包的原理及实践学习内容</div> </li> <li><a href="/article/1949887845539835904.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/-/1.htm">-</a><a class="tag" taget="_blank" href="/search/%E8%A1%8C%E4%B8%BA/1.htm">行为</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0/1.htm">函数</a><a class="tag" taget="_blank" href="/search/%E4%BD%9C%E7%94%A8%E5%9F%9F/1.htm">作用域</a><a class="tag" taget="_blank" href="/search/%E9%97%AD%E5%8C%85/1.htm">闭包</a><a class="tag" taget="_blank" href="/search/%E9%80%92%E5%BD%92/1.htm">递归</a><a class="tag" taget="_blank" href="/search/%E4%BD%9C%E7%94%A8%E5%9F%9F%E9%93%BE/1.htm">作用域链</a> <div>Hi,我是布兰妮甜!JavaScript是一种动态类型语言,它支持面向对象编程和函数式编程。函数是JavaScript的核心组成部分之一,而作用域则决定了变量的可见性和生命周期。本文将详细介绍JavaScript中的函数定义、调用、参数传递、闭包、递归以及作用域链的概念。文章目录一、函数基础二、作用域基础三、闭包四、递归五、作用域链六、总结一、函数基础1.定义函数函数声明函数可以通过函数声明的方式</div> </li> <li><a href="/article/1949884694208245760.htm" title="深入理解作用域【JavaScript】" target="_blank">深入理解作用域【JavaScript】</a> <span class="text-muted">陆仟</span> <a class="tag" taget="_blank" href="/search/Web%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/1.htm">Web前端开发</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>一、作用域的内部原理JavaScript的作用域机制是理解变量如何被访问和存储的重要概念。下面详细介绍作用域的内部原理,包括编译、执行、查询、嵌套和异常处理这五个步骤。1.编译在JavaScript的执行过程中,首要的步骤是编译。尽管JavaScript是解释性语言,但现代JavaScript引擎(如V8)在执行代码前会先进行编译。编译阶段主要完成以下几项工作:词法分析:将源代码分解成语法单元(t</div> </li> <li><a href="/article/1949875239387197440.htm" title="即便你已经在浏览器中启用了 JavaScript有时网页依然可能出现功能失效、内容加载不完整或按钮点击无反应等问题。这些问题通常由 JavaScript 冲突" target="_blank">即便你已经在浏览器中启用了 JavaScript有时网页依然可能出现功能失效、内容加载不完整或按钮点击无反应等问题。这些问题通常由 JavaScript 冲突</a> <span class="text-muted"></span> <div>即便你已经在浏览器中启用了JavaScript有时网页依然可能出现功能失效、内容加载不完整或按钮点击无反应等问题。这些问题通常由JavaScript冲突、浏览器设置不当或插件干扰等原因引起。作为HostEase的技术人员我将为你提供一系列简单有效的JavaScript故障排除方法帮助你快速定位并解决这些问题。禁用可能干扰JavaScript的浏览器扩展,广告拦截器,安全插件或某些脚本管理器可能会干</div> </li> <li><a href="/article/1949872340728868864.htm" title="技术文章大纲:Anaconda插件开发挑战赛引言介绍Anaconda在数据科学和PythonUH开发中的重要性" target="_blank">技术文章大纲:Anaconda插件开发挑战赛引言介绍Anaconda在数据科学和PythonUH开发中的重要性</a> <span class="text-muted">aadwje</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a> <div>即便你已经在浏览器中启用了JavaScript有时网页依然可能出现功能失效、内容加载不完整或按钮点击无反应等问题。这些问题通常由JavaScript冲突、浏览器设置不当或插件干扰等原因引起。作为HostEase的技术人员我将为你提供一系列简单有效的JavaScript故障排除方法帮助你快速定位并解决这些问题。禁用可能干扰JavaScript的浏览器扩展,广告拦截器,安全插件或某些脚本管理器可能会干</div> </li> <li><a href="/article/1949803748612173824.htm" title="深入分析 Node.js 的 V8 引擎如何在内部处理 JavaScript 代码,包括内存管理和垃圾回收机制。" target="_blank">深入分析 Node.js 的 V8 引擎如何在内部处理 JavaScript 代码,包括内存管理和垃圾回收机制。</a> <span class="text-muted">海派程序猿</span> <a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</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>各位观众老爷们,晚上好!今天咱们就来聊聊Node.js的大心脏——V8引擎,看看它到底是怎么把咱们写的JavaScript代码给“消化”掉的。别害怕,今天咱不搞那些生涩难懂的学院派理论,尽量用大白话,外加一些“栗子”,保证让你听得津津有味。V8引擎:JavaScript的超级翻译官首先,简单介绍一下V8。V8是Google开发的高性能JavaScript和WebAssembly引擎,用C++写的。</div> </li> <li><a href="/article/1949801101146517504.htm" title="Tailwind CSS 响应式设计实战指南" target="_blank">Tailwind CSS 响应式设计实战指南</a> <span class="text-muted">qcidyu</span> <a class="tag" taget="_blank" href="/search/%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C/1.htm">用户体验</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E4%BC%98%E5%8C%96/1.htm">代码优化</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E4%BC%98%E5%85%88/1.htm">移动优先</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%AB%99%E5%B8%83%E5%B1%80/1.htm">网站布局</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/Tailwind/1.htm">Tailwind</a><a class="tag" taget="_blank" href="/search/CSS/1.htm">CSS</a><a class="tag" taget="_blank" href="/search/%E5%93%8D%E5%BA%94%E5%BC%8F%E8%AE%BE%E8%AE%A1/1.htm">响应式设计</a> <div>title:TailwindCSS响应式设计实战指南date:2024/6/13updated:2024/6/13author:cmdragonexcerpt:这篇文章介绍了如何运用TailwindCSS框架创建响应式网页设计,涵盖博客、电商网站及企业官网的布局实例,包括头部导航、内容区域、侧边栏、页脚及轮播图等组件的响应式实现。同时,探讨了与JavaScript框架集成、CSS预处理器配合、设计</div> </li> <li><a href="/article/1949765414980481024.htm" title="JavaScript核心概念全解析" target="_blank">JavaScript核心概念全解析</a> <span class="text-muted"></span> <div>目录1.作用域(1)局部作用域(2)全局作用域2.垃圾回收(1)引用计数法(2)标记清除法3.闭包(1)作用(2)风险4.变量提升(1)var(2)let和const(3)const5.函数提升(1)函数声明(2)函数表达式6.函数参数(1)动态参数(2)剩余参数(3)展开运算符7.必须加分号的两种情况(1)立即执行函数(2)使用数组的时候8.箭头函数(1)特点9.Symbol10.生成器函数11</div> </li> <li><a href="/article/1949740580871401472.htm" title="IntelliJ IDEA 高效开发指南:从基础操作到高级技巧" target="_blank">IntelliJ IDEA 高效开发指南:从基础操作到高级技巧</a> <span class="text-muted">zqmgx13291</span> <a class="tag" taget="_blank" href="/search/intellij-idea/1.htm">intellij-idea</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a> <div>一、IDEA概述与环境配置1.1IDEA的核心优势智能代码辅助:基于上下文的代码补全(Ctrl+Space)、方法参数提示、错误实时检测全栈开发支持:内置Java/Python/JavaScript等20+语言支持,框架集成(SpringBoot/Vue/React)工具链集成:版本控制(Git/SVN)、数据库(MySQL/PostgreSQL)、容器(Docker/K8s)一站式开发性能优化:</div> </li> <li><a href="/article/1949735665474269184.htm" title="【前端】JavaScript 的事件循环 (Event Loop)" target="_blank">【前端】JavaScript 的事件循环 (Event Loop)</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>JavaScript的事件循环(EventLoop)是其实现异步编程的核心机制,即使JS是单线程语言,它也能高效处理I/O、网络请求、计时器等非阻塞操作。以下是其工作原理的精要解析:核心概念单线程执行JS引擎(如V8)只能顺序执行一个任务。异步行为需要靠宿主环境(浏览器/Node.js)提供的事件循环调度。任务队列(TaskQueue)所有异步操作完成后对应的回调函数会进入队列等待执行。队列类型包</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>