-
正则表达式
基本的元字符之类的百度谷歌各种正则书都有介绍,就不再重复啦。另外RegExr的cheatsheet也有简要介绍。
要介绍的是对两个正则的理解。
1.密码(要求至少8个字符,至少一个数字,至少有一个小写字母和一个大写字母,至少包含一个比如
@#%$^
的字符,不能包含空白)答案是
/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#%$^])(?=\S+$).{8,}$/gm
。(?=abc)
,正向先行断言。自我吐槽一句,“断言”这个词汇硬是理解了半天。不就是“判断的句子”的意思么?所以正向断言就是判断字符串是否满足条件, 但又不消耗字符串的字符。有点像if(abc){}
。因此
(?=.*[0-9])
就是满足“除换行符以外的其他字符任意个+任意一个数字”这样一个条件。后面4个先行断言也是如此。因此整个正则的意思就是满足这5个 条件的8个以上的任意字符。2.千分符
在一篇介绍正则的文章中看到的这个例子。有意思的是,当初我看不懂那道正则,然后Google了一下相关问题,结果找到了另外一种解法。等我理解完这种解法 后,我才发现Google到的那个正则要比那篇文章中的正则要难理解得多。
function putComma(price){ return price.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ","); }
(?!abc)
,负向先行断言。相当于if(!abc){}
。所以(?=(?:\d{3})+(?!\d))
的意思就是数字的数目要成3的倍数,后面不可有额外的数字。用一张图来解释就是这样的:
上述正则的图解 -
一个尚未解决的问题
正确的标题不应该是这样的,但是由于此问题尚未解决,不知道该起什么名字好。:)起因是某日搜东西的跳到搜狗问问页面,字体如下图般混乱得无力吐槽。
Chrome下搜狗问问首页侧栏 再查看渲染字体,把我一惊,居然有日文字体。可是明明样式里字体设置
font-family: tahoma,arial,helvetica,sans-serif,simsun;
除了把宋体错 误地写在最后以外,并没有什么地方设置了日文字体啊。而且,除了html
标签未设置lang属性外,也没有什么问题啊。Chrome下该页面的渲染字体 后来发现:原来是Chrome的设置问题啊!因为Safari和FireFox没有这个问题啊!(T_T)。刚好那时候学了一点HTTP方面的知识,发现:原来Chrome 下该网页的HTTP response header的content-language为ja。而FireFox为en-us,Safari为zh-cn。
Chrome下该网页的响应头部信息 且accept-language里ja也是首位的。 原来在Chrome语言设置里,日文被我稀里糊涂地排在了首位!所以,Chrome下会出现日文字体不足为奇啊。
Content-Language is from the server, and lets the client know what language(s) are present on the requested page. Accept-Language is from the client, and lets the server know the user's preferred language(s).
可是,为什么相同的设置,大多数网页都是正常的,且响应头里没有content-language信息呢?(后端知识不够啊.T_T)
-
jQuery Dom
1. append(), appendTo()与after(), insertAfter()
存在dom里的被插元素.append(新建的插入元素), 新建的插入元素.appendTo(存在dom里的被插元素).
插入元素作为被插元素的最后一个子孩子。
after()/insertAfter()相当于append()/appendTo()的关系,不同的是,插入元素是作为被插元素的后相邻节点插入的。
2. wrap(), wrapAll(), wrapInner()
已有节点:
<strong></strong><strong></strong>
代码:
-
$("strong").wrap("<b></b>");
Result:
<b><strong></strong></b><b><strong></strong></b>
$("strong").wrapAll("<b></b>");
Result:
<b><strong></strong><strong></strong></b>
$("strong").wrapInner("<b></b>");
Result:
<strong><b></b></strong><strong><b></b></strong>
-
Newer