Smeagol's blog

Category: Uncategorized (page 1 of 3)

最新手机号码验证正则表达式js版

由于手机号段的不断更新,以前的正则表达式已经无法满足需求。重新编写这条表达式,号段资料来源依据:http://www.von-line.com/hao.htm

var regex = {
    mobile: /^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/
}

表达式分析:
“/”代表一个正则表达式。
“^”代表字符串的开始位置,“$”代表字符串的结束位置。
“?”代表匹配前面的字符一个或零个,所以这里0?的意思是手机号码可以以0开头或不以0开头。
接下的部分验证11位的手机号码,先从13开始,因为从130-139都有所以可选区间是[0-9],15开头的号码没有154所以[]里面没有4这个数字,当然也可以写成[0-35-9],下面18和14开的号码同上。
小括号括起来的代表一个子表达式,里面是4个可选分支分别用“|”来区分开来,在正则中“|”的优先级是最低的,这里每个分支匹配的都是3个字符(一个[]只能匹配一个字符,里面是可选的意思),也就是手机号码的前3位数字,那么后面还有8位数字需要匹配,可以是0-9的任意字符,所以是“[0-9]{8}”,{}中的数字代表匹配前面字符的个数。分析完毕。

分享一段用jquery来重排表格的代码

由于工作需要,于是就写了这样一段代码。它的作用是重排已有的页面上的表格,让表格中的为空的名值对隐藏,使表格重新排列。顺便用了下wp的语法高亮插件SyntaxHighlighter。欢迎大家拍砖,这里留的问题是如果定义一个jquery的对象集合?

<!DOCTYPE HTML>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>表格重列</title>
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
</head>
<body>
	<table border="1">
		<tr>
			<th>姓名:</th>
			<td>Smeagol</td>
			<th>性别:</th>
			<td>男</td>
		</tr>
		<tr>
			<th>年龄:</th>
			<td>16岁</td>
			<th>婚姻状况:</th>
			<td></td>
		</tr>
		<tr>
			<th>学历:</th>
			<td>初中</td>
			<th>籍贯:</th>
			<td>潘多拉星球</td>
		</tr>
	</table>
	<script type="text/javascript" charset="utf-8">
		function tableRestate(_table,colCouple) {
			var mod = colCouple*2;
			var _title = _table.find(".title").prop("colspan",mod).parent().remove();
			var _tds = _table.find("td,th");
			_tds.each(function(i){
				if(!this.innerHTML){
					_tds = _tds.not($(this).remove()).not(_tds.eq(i-1).remove());
				}
			});
			_table.empty();
			_table.append(_title);
			var _tr;
			_tds.each(function(i){
				if(i%mod==0){
					_tr = $(this);
				}else{
					_tr = _tr.add($(this));
				}
				if(i%mod==mod-1 && i!=0){
					_tr = _tr.wrapAll("<tr></tr>").parent();
					_table.append(_tr);
					_tr = "";
				}
			});
			var emptyCell = _tds.length % mod;
			if (emptyCell) {
				emptyCell = mod - emptyCell;
				for (var i = 0; i < emptyCell; i++) {
					_tr = _tr.add("<td></td>")
				};
				_tr = _tr.wrapAll("<tr></tr>").parent();
				_table.append(_tr);
			};
		}
		tableRestate($("table"),4);
	</script>
</body>
</html>

win7,ie9,农行的网银登录时提示,“无法显示该页”

留给碰到同样问题的人。

这几天用到农行的网银,台式机是win7的系统。流程和以前的一样,但是,这次不行了,在登录到农行网页后,在点个人登录,再点证书登录的时候就会出现,该页无法显示,不是和以前一样的弹出k宝密码输入的框框。

打电话给客服说:“装个ie6”。(坑爹啊! win7装ie6。)

好吧,google上搜了下,发现很多人的农行在ie9下并没有问题,我自己试了下win7下ie8也是不行。那应该不是浏览器的问题了。

农行在登录要读k宝的信息,win7的权限做的有严格,普通用户只有有限的权限,即使是添加自己的帐号到管理组,权限是也是有限的,无法和原来系统管理员一样。所以,用系统管理员试了一下登录农行,果然就可以了。

让ie8模拟ie7来呈现页面,让line-height垂直居中

今天没事在看163的页面源代码,发现这么一句话:<meta http-equiv=”X-UA-Compatible” content=”IE=EmulateIE7″ />

查了一下资料:
http://msdn.microsoft.com/zh-cn/library/cc817574.aspx

原来ie8还可以这样,而且这个meta属性可以直接在apache里设置。用这个东西可以解决在ie8下,line-height不居中的问题了,太好了。

godaddy最新优惠码,大于75美元的订单便宜20%

This special offer expires 2/9/2011, so start shopping now! Use source code fbfhome20 to get 20% OFF* your order of $75 or more .

大于75美元的订单便宜20%,优惠码fbfhome20

帝国cms,1.5版ucenter接口文件uc.php

帝国cms,1.5版ucenter接口文件uc.php

重写了下原来的uc.php,之前只有1.0.0版。不知道有没有人放出过。

不过我没找到,于是自己写了个。

点击下载

各大知名开源ERP演示地址

comunionerp
演示地址:http://www.comunionerp.com/web/sec_users/login

BlueERP
演示地址:http://dev.mitija.com/blueerp/login.php?cd=10&phpgw_forward=/index.php

opentaps
演示地址:http://demo1.opentaps.org/catalog/control/main?
用户名和密码:flexadmin and ofbiz

openerp
演示地址: http://www.openerp.com/discover/demonstration.html#manufacturing
Login: demo / Password: demo

ofbiz
主页地址:http://ofbiz.apache.org/

adempiere
演示地址:http://www.testadempiere.com/webui/

http://www.testadempiere.com/webui/
adempiere

google chrome 书签无法同步了?

今天重装了系统,然后重装了chrome浏览器,但是在同步书签的时候却显示是 “无法连接到服务器”,网上都说是被墙了,但是我用vpn代理上去还是无法链接服务器。于是我用了一些偏方,比如有的人说登陆了gmail就可以了,有的说登陆了igoogle就可以了,但是我试了不行。这时我想到以前曾经发现过书签存储的地方,就是google的文件管理。于是我进入google的账号,在自己开通的服务中有一项是“文件”,我打开它,看到了里面的书签文件,这时我在去点同步,发现已经可以同步了,奇迹啊~!!!(早上在linux下也是提示无法连接服务器,用这个方法在去试试。)

补:在hosts文件中加入如下有效:

209.85.225.100    clients4.google.com
209.85.225.100    docs.google.com

修改cue文件的编码方式,解决标题乱码的问题

cue文件一般会和ape文件在一起,它是ape文件的类似索引的文件。里面记录了,歌曲的名称以及开始的时间,还有一些专辑里的详细信息。

我下载了一些邓丽君的ape文件专辑文件,打开cue文件播放的时候,播放列表中歌曲名都是乱码的。于是试着自己来解决一下,网上说要把系统的区域换成台湾的,这个太麻烦,我想这个应该是文件编码的问题。我用editplus打开cue文件,显示是utf-8+的格式,我试了一下utf8(注:utf8和utf8+是不一样的。后者在文件的头部会多出3个字节,这种编码可以来解决ie6下utf8文件编码显示空白的问题。),不行。文件里是繁体的,应该是一种中文的编码方式,于是我试了试gb2312。ok了,显示正常。方法:用editplus打开cue文件,点“文件”-》“另存为……”,在出来的对话框中,有个编码方式,默认里面是没有gb2312的,要选旁边的3个点,在里面把Chinese simplified gb2312先加进来,然后选择它,替换原来的文件。这样播放时显示就正常了。

让scriptaculous的Effect.ScrollTo有横向滚动的效果

用javascript如何实现滚动条横向滚动的效果?

是的,scriptaculous的Effect.ScrollTo动画只能实现纵向的效果。即用采用锚标记定位时,让跳转的过程不那么生硬,有一个动画效果,慢慢滚动过去,但是他只在页面是纵向布局的时候可行。如果页面是横向的,像gucci的网站那样,就不行了。给出下面的代码,重写Effect.ScrollTo,来实现横向滚动的效果。

Effect.ScrollTo = Class.create();
Object.extend(Object.extend(Effect.ScrollTo.prototype, Effect.Base.prototype), {

initialize: function(element) {
this.element = $(element);
this.start(arguments[1] || {});
},

setup: function() {
Position.prepare();
var offsets = Position.cumulativeOffset(this.element);
if(this.options.offsetX) offsets[0] += this.options.offsetX;
if(this.options.offsetY) offsets[1] += this.options.offsetY;

var maxWidth = window.innerWidth ?
window.width – window.innerWidth :
document.body.scrollWidth –
(document.documentElement.clientWidth ?
document.documentElement.clientWidth : document.body.clientWidth);
this.scrollStartX = Position.deltaX;
this.deltaX = (offsets[0] > maxWidth ? maxWidth : offsets[0]) – this.scrollStartX;

var maxHeight = window.innerHeight ?
window.height – window.innerHeight :
document.body.scrollHeight –
(document.documentElement.clientHeight ?
document.documentElement.clientHeight : document.body.clientHeight);
this.scrollStartY = Position.deltaY;
this.deltaY = (offsets[1] > maxHeight ? maxHeight : offsets[1]) – this.scrollStartY;
},

update: function(position) {
Position.prepare();
window.scrollTo(
this.scrollStartX + (position * this.deltaX),
this.scrollStartY + (position * this.deltaY)
);
}
});
Event.observe(window, ‘load’, function() {
$$(‘a[href^=#]:not([href=#])’).each(function(element) {
element.observe(‘click’, function(event) {
new Effect.ScrollTo(this.hash.substr(1));
Event.stop(event);
}.bindAsEventListener(element))
})
})

点右键另存为hor.js

Olderposts

Copyright © 2017 Smeagol's blog

Theme by Anders NorenUp ↑