代同事发段招聘贴。
http://www.51js.com/?uid-11552-action-viewspace-itemid-622顺便发段代码,免得被移进灌水区:
var StringH = {
tmpl:function(sTmpl,opts){
/** 
* 字符串简易模板
* @method tmpl
* @param {String} sTmpl 字符串模板,其中变量以{$aaa}表示
* @param {Object} opts 模板参数
* @return {String}  模板变量被替换后的字符串
* @example alert(tmpl("{$a} love {$b}.",{a:"I",b:"you"}))
*/
return sTmpl.replace(/\{\$(\w+)\}/g,function(a,b){return opts[b]});
},
dbc2sbc:function(s)
{
/** 
* 全角字符转半角字符
全角空格为12288,转化成" ";
全角句号为12290,转化成".";
其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 
* @method dbc2sbc
* @param {String} s 需要处理的字符串
* @return {String}  返回转化后的字符串
* @example 
var s="发票号是BBC123456,发票金额是12.35元";
alert(dbc2sbc(s));
*/
return s.replace(/[\uff01-\uff5e]/g,function(a){return String.fromCharCode(a.charCodeAt(0)-65248);})
.replace(/\u3000/g,' ')
.replace(/\u3002/g,'.');
}, byteLen:function(s)
{
/** 
* 得到字节长度
* @method byteLen
* @param {String} s 字符串
* @return {number}  返回字节长度
*/
return s.replace(/[^\x00-\xff]/g,"--").length;
}, subByte:function(s, len, tail)
{
/** 
* 得到指定字节长度的子字符串
* @method subByte
* @param {String} s 字符串
* @param {number} len 字节长度
* @optional {string} tail 结尾字符串
* @return {string}  返回指定字节长度的子字符串
*/
if(StringH.byteLen(s)<=len) return s;
tail = tail||'';
len -= StringH.byteLen(tail);
return s=s.substr(0,len).replace(/([^\x00-\xff])/g,"$1 ")//双字节字符替换成两个
.substr(0,len)//截取长度
.replace(/[^\x00-\xff]$/,"")//去掉临界双字节字符
.replace(/([^\x00-\xff]) /g,"$1") + tail;//还原
}
}