锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
(1)蹇熷畾浣?鏍規嵁node.id
娉細 EXT 鏍戠殑鑺傜偣濡傛灉涓嶅睍寮,鏁版嵁鏄幏鍙栦笉鍒扮殑( getNodeById() 鎶ュ紓甯?錛屽嵆浣夸綘load浜嗘暟鎹笉灞曞紑鑺傜偣鍓嶏紝涓鏍瘋幏鍙栦笉鍒般?/span>
var node=treepanel.getNodeById(node_id);
treepanel.getRootNode().cascade(function(n) {
]]>
鍏蜂綋鎻忚堪錛?/span>
琛ㄦ牸絎竴鍒楋紙鍏跺畠鍒椾篃琛岋級涓虹被鍨嬮夋嫨鍒楋紝閲囩敤ComboBox涓虹紪杈戝櫒錛屽綋閫夋嫨鏌愪竴綾誨瀷錛堝錛氱被鍨?錛夋椂琛ㄦ牸褰撳墠琛?/strong>鐨勬煇浜涘垪錛堝錛氱2鍒梸絎?鍒楋級灝卞彉涓轟笉鍙紪杈戠姸鎬侊紝騫舵樉紺轟笉鍚岀殑鏍峰紡錛堢被浼間簬button鐨刣isable錛夈?/p>
褰撻夋嫨鍏跺畠綾誨瀷錛堝錛氱被鍨?錛夋椂琛ㄦ牸褰撳墠琛?/strong>鐨勪笉鍙紪杈戝崟鍏冩牸鍙堝彉鎴愬彲緙栬緫鐨勩?/p>
(1)
鏄惁鍙紪杈戞牱寮忓彲浠ュ湪鍒楁ā鍨嬬殑renderer涓搷浣?nbsp;
renderer : function(data, meta){
if(xxx){
meta.css += " x-item-disabled";
}
}
(2)
鏄惁鍙紪杈戦昏緫鍙互鍦╣rid鐨刡eforeedit浜嬩歡涓嫤鎴垽鏂?nbsp;
grid.on("beforeedit", function(e){
/*
e = {
grid: this,
record: r,
field: field,
value: r.data[field],
row: row,
column: col,
cancel:false
};
*/
if(xxx){
return false; // 涓錛屼笉璁╃紪杈?nbsp;
}
});
document.write('<authz:authorize ifAnyGranted="ROLE_HRCHANGE_S"> ');
document.write('<li><a id="a1" href="#" title="鎴戠殑宸ヤ綔">鎴戠殑宸ヤ綔</a></li>');
document.write('</authz:authorize>');
</script>
JSP欏甸潰涓殑欏甸潰鍏冪礌,URL,鎸夐挳鏄惁鍙鎴栧彉鐏伴兘鍙氳繃Acegi鏍囩搴撴潵瀹炵幇錛屼嬌鐢ˋcegi鏍囩搴擄紝鍙緗笉鍚岀殑鏉冮檺ID鍏佽鐐瑰嚮鐨勬寜閽?璁塊棶鐨刄RL,鎴栭殣钘忔棤鏉冮檺鐨勫姛鑳借彍鍗曘?/font>
濡備綍閰嶇疆鍜屼嬌鐢ㄦ爣絳懼簱錛?/font>
鎵撳紑acegi-security-<chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">1.0.3</chsdate>.jar,鍦∕ETA-INF鐩綍涓湁涓涓猘uthz.tld鏂囦歡錛屽皢姝ゆ枃浠跺鍒跺埌浣犵殑web搴旂敤鐨刉EB-INF"tld涓紝鐒跺悗閰嶇疆web.xml,澧炲姞:
<taglib>
<taglib-uri>http://acegisecurity.sf.net/authz</taglib-uri>
<taglib-location>/WEB-INF/tld/authz.tld</taglib-location>
</taglib>
鐒跺悗JSP欏甸潰鍙互閫氳繃澹版槑<%@ taglib uri="http://acegisecurity.sf.net/authz" prefix="authz"%>鏉ュ紩鐢ㄦ爣絳懼簱銆?/font>
澹版槑浜嗘爣絳句互鍚庯紝鍦ㄩ〉闈腑鍙互鎸変笅闈㈢殑鏍煎紡浣跨敤acegi鏍囩(authz鏍囩鍙互宓屽浣跨敤)錛?/font>
<!--浣跨敤鏉冮檺鏍囩鐨勪緥瀛?鏍囩鍙互宓屽 -->
<authz:authorize ifAnyGranted="AUTH_USER">
<td> 涓鑸敤鎴鋒潈闄?/font>
</td>
<authz:authorize ifAnyGranted="AUTH_ADMIN">
<td> 瓚呯駭鐢ㄦ埛鏉冮檺
</td>
</authz:authorize>
</authz:authorize>
<authz:authorize ifAnyGranted="AUTH_SYS">
<td> 緋葷粺緇存姢鏉冮檺
</td>
</authz:authorize>
涔熷彲浠ュ湪JavaScript涓敤document.write杈撳嚭鏉冮檺鏍囩錛?/font>
<script language="JavaScript" type="text/javascript">
//璁㈠崟涓績
document.write('<authz:authorize ifAnyGranted="AUTH_TAG_ORDER_CENTER"> ');
new tree(TREE_ITEMS1, TREE_TPL);
document.write('</authz:authorize>');
</script>
鍦ㄦ湁javaScript鑴氭湰涓湁鏃朵笉鏂逛究寮曠敤acegi鏍囩錛屽彲浠ヤ粠SecurityContextHolder涓幏寰楁潈闄愰泦鍚堬紝鐒跺悗鍒ゆ柇褰撳墠鐧誨綍鐨勭敤鎴鳳紝鍏舵潈闄愰泦鍚堜腑鏄惁鏈夋煇鏉冮檺錛屾牴鎹垽鏂粨鏋滄潵鍐沖畾鏄劇ず鎴栭殣钘忓摢浜涢〉闈㈠厓绱狅紝瑙佷笅闈㈢殑JSP:
<%@ page contentType="text/html; charset=GBK"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<%@ taglib uri="http://acegisecurity.sf.net/authz" prefix="authz"%>
<%@ page import="org.acegisecurity.Authentication" %>
<%@ page import="org.acegisecurity.context.SecurityContext" %>
<%@ page import="org.acegisecurity.context.SecurityContextHolder" %>
<%@ page import="org.acegisecurity.userdetails.UserDetails" %>
<%@ page import="org.acegisecurity.ui.AccessDeniedHandlerImpl" %>
<%@ page import="org.springframework.aop.framework.ProxyFactoryBean"%>
<%@ page import="org.springframework.context.ApplicationContext"%>
<%@ page import="org.springframework.context.support.ClassPathXmlApplicationContext"%>
<%@ page import="org.acegisecurity.GrantedAuthority"%>
<%@ page import="com.mysoft.common.ValidateAcegiAuth"%>
<%
SecurityContext ctx = SecurityContextHolder.getContext();
%>
銆傘傘?/font>
<script language="JavaScript" type="text/javascript">
//涓嬮潰鏄皟鐢ㄨ嚜瀹氫箟鐨勭被ValidateAcegiAuth錛岃緭鍏ュ綋鍓嶇櫥褰曠敤鎴風殑SecurityContext錛屽強鏉冮檺鐮侊紝濡傛灉鏈堿UTH_FUN_TICKET_CHKERR鏉冮檺錛屽垯鎵ц鐩稿簲鐨凧S鑴氭湰銆?/font>
<%if(ValidateAcegiAuth.validate(ctx,"AUTH_FUN_TICKET_CHKERR")){%>
//鍏鋒湁AUTH_FUN_TICKET_CHKERR 鏉冮檺錛屾墽琛岀浉搴攋s鑴氭湰…
<%}%>
</script>
涓嬮潰鏄疺alidateAcegiAuth綾葷殑浠g爜錛?/font>
package com.mysoft.common;
import org.acegisecurity.Authentication;
import org.acegisecurity.context.SecurityContext;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.ui.AccessDeniedHandlerImpl;
import org.springframework.aop.framework.ProxyFactoryBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.acegisecurity.GrantedAuthority;
/**
* 楠岃瘉鏉冮檺闆嗗悎涓槸鍚︽湁鏌愪竴鏉冮檺
* @author bzwang
*
*
*/
public class ValidateAcegiAuth
{
/**
*楠岃瘉鏉冮檺闆嗗悎涓槸鍚︽湁鏌愪竴鏉冮檺
* @param ctxLoginUser SecurityContext
* @param sAuthID 鏉冮檺ID
* @return boolean 鏄惁鏈夋寚瀹氱殑鏉冮檺
*/
public static boolean validate(SecurityContext ctxLoginUser,String sAuthID)
{
boolean bool = false;
Authentication authLoginUser = null;
GrantedAuthority[] arrayAuthorities = null;
if(ctxLoginUser!=null)
{
authLoginUser = ctxLoginUser.getAuthentication();
if(authLoginUser!=null)
{
arrayAuthorities = authLoginUser.getAuthorities();
for(int i=0;i<arrayAuthorities.length;i++)
{
if(arrayAuthorities[i].toString().equals(sAuthID))
{
bool = true;
break;
}
}
}
else
{
bool = false;
}
}
else
{
bool = false;
}
return bool;
}
}
(2)IE8 嫻忚鍣ㄤ腑,瀵逛簬EXTJS TABPANEL鍦↖E8涓璗AB鏍囩閫変腑鏃?鏍囩搴曢儴娌℃湁鏁堟灉鏄劇ず
鍘熷洜:鏂囨湰妯″紡涓烘潅欏?EXTJS鏃犳硶鍒ゆ柇IE嫻忚鍣ㄧ増鏈?涔熷氨鏃犳硶鍦?lt;a>鏍囩涓紜姞杞紺SS浠g爜:
.ext-ie .x-tab-strip .x-tab-right{position:"relative"}
<a class="x-tab-right" id="ext-gen37" href="#">
...
</a>
HTML鍏冪礌鐨勬爣鍑嗕簨浠舵槸鎸噈ouseover銆乵ousedown銆乧lick銆?blur銆乫ocus銆乧hange絳夈傚湪ExtJS涓紝榪欎簺浜嬩歡鐨勫鐞嗗涓嬶細
ExtJS 浼氭牴鎹笉鍚岀殑嫻忚鍣ㄨ繘琛岀浉搴旂殑澶勭悊錛屾敮鎸佸嫻忚鍣ㄣ備簨浠跺鐞嗗嚱鏁扮殑鍙傛暟鍙兘鍙傝僂xtJS鐨勬枃妗d簡錛屽繀瑕佹椂榪樺緱鍙傝冩簮浠g爜銆?/p>
2. 澶勭悊鑷畾涔変簨浠?/strong>
鍦‥xtJS涓嬌鐢ㄨ嚜瀹氫箟浜嬩歡錛岄渶瑕佷粠Ext.util.Observable緇ф壙錛岀ず渚嬩唬鐮佸涓嬶細
Employee = function(name){ this.name = name; this.addEvents({ "fired" : true, "quit" : true }); } Ext.extend(Employee, Ext.util.Observable, { ... });
鍦ㄨ繖孌典唬鐮佷腑錛屽畾涔変簡涓涓狤mployee綾伙紝瀹氫箟浜唂ired鍜宷uit涓や釜浜嬩歡銆傚浣曡Е鍙戣繖涓や釜浜嬩歡鍛紝鍩虹被 Ext.util.Observable鎻愪緵浜嗚Е鍙戣嚜瀹氫箟浜嬩歡鐨勬柟娉昮ireEvent(eventName, arg1, arg2, ... argn), eventName鏄瑙﹀彂鐨勬椂闂寸殑鍚嶇О錛堜笉鍖哄垎澶у皬鍐欙級錛屽悗闈㈢殑鍙傛暟arg1錛宎rg2絳夋槸瑕佷紶緇欎簨浠跺鐞嗗嚱鏁扮殑鍙傛暟銆傜敤涓婇潰鐨凟mployee綾誨仛紺轟緥錛岃Е鍙憅uit浜嬩歡錛?/p>
this.fireEvent('quit', this);
榪欒浠g爜灝嗚Е鍙憅uit浜嬩歡錛屽茍灝咵mpolyee綾葷殑瀹炰緥浼犵粰quit浜嬩歡鐨勫鐞嗗嚱鏁幫紝quit浜嬩歡鐨勮闃呭彲浠ラ噰鐢ㄥ涓嬩唬鐮侊細
function myHandler1(empolyee){ ... } function myHandler2(empolyee){ ... } var emp = new Empolyee('tom'); emp.on('quit', myHandler1); emp.on('quit', myHandler2);
鍦ㄤ笂闈㈢殑浠g爜涓紝涓簈uit浜嬩歡娉ㄥ唽浜嗕袱涓鐞嗗嚱鏁幫紙myHandler1涓巑yHandler錛夛紝褰搎uit浜嬩歡琚縺鍙戞椂錛屽皢浼氫緷嬈¤皟鐢?myHandler1鍜宮yHandler2涓や釜鍑芥暟銆?/p>
鍊煎緱娉ㄦ剰鐨勬槸錛屼笉綆℃槸HTML鍏冪礌鐨勬爣鍑嗕簨浠惰繕鏄嚜瀹氫箟浜嬩歡錛屽鏋滀負鏌愪釜鏃墮棿娉ㄥ唽浜嗗涓鐞嗗嚱鏁幫紝濡傚墠闈㈢殑渚嬪瓙錛屽鏋渕yHandler1榪斿洖 false鐨勮瘽錛屽垯浼氬彇娑堝湪myHandler1涔嬪悗娉ㄥ唽鐨勫鐞嗗嚱鏁扮殑鎵ц錛屽嵆璇ヤ簨浠惰鍙栨秷錛屼粠鑰屽仠姝㈢戶緇墽琛岃浜嬩歡鐨勫鐞嗗嚱鏁幫紝鑰岃繖涓繑鍥炲糵alse 浼氫綔涓轟簨浠舵縺鍙戠殑緇撴灉錛岃繑鍥炵粰empolyee錛屽嵆錛?/p>
var result = this.fireEvent('quit', this); if (result === false) { alert('event canceled'); //榪欓噷琛ㄧず浜嬩歡琚煇涓鐞嗗嚱鏁板彇娑?/span> } else { alert('event complete'); // 榪欓噷琛ㄧず浜嬩歡鎵ц瀹屾瘯 }
閫氳繃Ext鐨勮嚜瀹氫箟浜嬩歡鐨勬満鍒訛紝鍙互瀹炵幇涓瀵瑰鐨勮瀵熻呮ā寮忥紝涔熷彲浠ュ疄鐜頒竴瀵逛竴鐨勭粦瀹氭ā寮忥紝榪欎竴鐐癸紝鍦‥xtJS鐨勫紑鍙戜腑鏄緢閲嶈鐨勩?/p>
var store = new Ext.data.JsonStore({
url: 'get-images.php',
root: 'images',
fields: [
'name', 'url',
{name:'size', type: 'float'},
{name:'lastmod', type:'date', dateFormat:'timestamp'}
]
});
store.load();
var tpl = new Ext.XTemplate(
'<tpl for=".">',
'<div class="thumb-wrap" id="{name}">',
'<div class="thumb"><img src="{url}" title="{name}"></div>',
'<span class="x-editable">{shortName}</span></div>',
'</tpl>',
'<div class="x-clear"></div>'
);
var panel = new Ext.Panel({
id:'images-view',
frame:true,
width:535,
autoHeight:true,
collapsible:true,
layout:'fit',
title:'Simple DataView',
items: new Ext.DataView({
store: store,
tpl: tpl,
autoHeight:true,
multiSelect: true,
overClass:'x-view-over', //榧犳爣鎮仠item鏃剁殑綾繪牱寮?defaults to undefined
itemSelector:'div.thumb-wrap', //蹇呴』欏?鍊間負item閫夋嫨鍣?姝ゅ間篃鍙負.thumb-wrap e.g. div.some-class
// //(榛樿鍚?defaults to 'x-view-selected',浣嗕粛蹇呴』鍐欐綾葷殑CSS鍐呭
emptyText: 'No images to display'
/*
plugins: [
new Ext.DataView.DragSelector(),
new Ext.DataView.LabelEditor({dataIndex: 'name'})
],*/
prepareData: function(data){ //鏁版嵁棰勫鐞?鍗蟲暟鎹鐞嗗墠.data涓哄師濮嬫暟鎹?綾誨瀷涓哄璞?
data.shortName = Ext.util.Format.ellipsis(data.name, 15); //鎸囧畾瀛楃涓蹭負15涓瓧絎?瓚呭嚭閮ㄥ垎鐢ㄤ笁涓渾鐐逛唬鏇?
// data.sizeString = Ext.util.Format.fileSize(data.size);
// data.dateString = data.lastmod.format("m/d/Y g:i a");
return data;
},
listeners: {
selectionchange: { //緇撶偣鐨勯夋嫨鍙戠敓鏀瑰彉鏃?鍗抽噸鏂伴夋嫨緇撶偣鏃?鍙互鏇存敼涓簊electionchange:function(dv,nodes)...
fn: function(dv,nodes){
var l = nodes.length;
var s = l != 1 ? 's' : '';
panel.setTitle('Simple DataView ('+l+' item'+s+' selected)');
}
}
})
});
panel.render(document.body);
DataView 鐢╯tore鎻愪緵鐨勬暟鎹祦錛岄噰鐢╰pl鐨勬牸寮忔樉紺猴紝itemSelector鐨勫間負鏁版嵁嫻佷腑鍧楃殑CSS綾婚夋嫨鍣紝瀵瑰潡鎿嶄綔鏃舵洿鎹㈠叾CSS綾繪牱寮?濡傞紶鏍囨偓鍋滃湪鍧椾笂鍜屽潡琚夊畾鏃剁殑CSS綾繪牱寮?綆鍗曠偣璇?灝辨槸鏈夊埄浜庡鏁版嵁嫻佷腑鐨勫潡濂芥帶鍒舵搷浣?
tpl瀹氫箟鐨勫潡錛?span aria-expanded="false" class="nodeLabelBox repTarget " role="treeitem"><div id="zack_hat.jpg" class="thumb-wrap">
榧犳爣鎮仠鏃剁殑鍧楋紙overClass錛夛細<div id="zack_hat.jpg" class="thumb-wrap x-view-over">
鐐瑰嚮琚変腑鐨勫潡錛坰electedClass錛夛細<div id="kids_hug2.jpg" class="thumb-wrap x-view-selected">
1.褰撻紶鏍囩偣鍑繪暟鎹祦涓煇涓鍧楁椂錛屽潡澧炲姞selectedClass瀹氫箟鐨勭被鏍峰紡錛屽娌″畾涔夌被鍚?鍗抽噰鐢ㄩ粯璁ょ殑綾誨悕'x-view-selected'錛圕SS鍐呭渚濈劧涓虹┖,浠嶉渶鎵嬪啓,鍙槸綾誨悕蹇呴』涓烘錛夛紱
2.鐢╫verClass瀹氫箟鐨凜SS綾繪牱寮忥紝榧犳爣鎮仠鍦ㄥ潡(div)涓婏紝鏇存崲鍏禖SS綾繪牱寮?
3.dataView.store.filter(f1,f2):浠巗tore涓煡鎵緁1瀛楁,涓巉2鍖歸厤(涓嶅畬鍏ㄥ尮閰嶇浉鍚?榪囨護,閲嶆柊鏈湴鍔犺澆鏁版嵁.
4.dataView.store.store(f1,'asc'/'desc'):store鐨勫唴瀹規寜f1鐨勫兼帓搴?
5.dataView.store.clearFilter():娓呴櫎榪囨護鐘舵?榪樺師鍒濆.
6.dataView.select(n):鏇存崲絎琻涓潡鐨凜SS綾繪牱寮?
(浜?html:
<html>
<head>
</head>
<body id="ext-gen6" class=" ext-gecko ext-gecko3">
-->
<h1>DataView Example</h1>
<p>
</p>
<div id="images-view" class="x-panel" style="width: 535px;">
<div class="x-panel-tl">
</div>
<div id="ext-gen8" class="x-panel-bwrap">
<div class="x-panel-ml">
<div class="x-panel-mr">
<div class="x-panel-mc">
<div id="ext-gen9" class="x-panel-body" style="width: 523px; height: auto;">
<div id="ext-comp-1001" style="height: auto;">
<div id="kids_hug2.jpg" class="thumb-wrap x-view-selected ">
<div class="thumb">
<img title="kids_hug2.jpg" src="images/thumbs/kids_hug2.jpg"/>
</div>
<span class="x-editable"/>
</div>
<div id="zack_hat.jpg" class="thumb-wrap ">
</div>
<div id="zack.jpg" class="thumb-wrap ">
</div>
<div id="zack_sink.jpg" class="thumb-wrap ">
</div>
<div id="sara_pink.jpg" class="thumb-wrap">
</div>
<div id="dance_fever.jpg" class="thumb-wrap ">
<div class="thumb">
<img title="dance_fever.jpg" src="images/thumbs/dance_fever.jpg"/>
</div>
<span class="x-editable"/>
</div>
<div id="gangster_zack.jpg" class="thumb-wrap ">
</div>
<div id="zacks_grill.jpg" class="thumb-wrap">
</div>
<div id="kids_hug.jpg" class="thumb-wrap ">
</div>
<div id="zack_dress.jpg" class="thumb-wrap ">
</div>
<div id="sara_pumpkin.jpg" class="thumb-wrap">
</div>
<div id="sara_smile.jpg" class="thumb-wrap ">
</div>
<div id="up_to_something.jpg" class="thumb-wrap ">
</div>
<div class="x-clear"/>
</div>
</div>
</div>
</div>
</div>
<div class="x-panel-bl x-panel-nofooter">
</div>
</div>
</div>
</body>
<div id="_firebugConsole" style="display: none;" FirebugVersion="1.4.2"/>
</html>
(涓?css
#images-view .x-panel-body {
-moz-background-clip:border;
-moz-background-inline-policy:continuous;
-moz-background-origin:padding;
-x-system-font:none;
background:white none repeat scroll 0 0;
font-family:Arial,Helvetica,sans-serif;
font-size:11px;
font-size-adjust:none;
font-stretch:normal;
font-style:normal;
font-variant:normal;
font-weight:normal;
line-height:normal;
}
#images-view .thumb {
-moz-background-clip:border;
-moz-background-inline-policy:continuous;
-moz-background-origin:padding;
background:#DDDDDD none repeat scroll 0 0;
padding:3px;
}
#images-view .thumb img {
height:60px;
width:80px;
}
#images-view .thumb-wrap {
float:left;
margin:4px 0 4px 4px;
padding:5px;
}
#images-view .thumb-wrap span {
display:block;
overflow:hidden;
text-align:center;
}
#images-view .x-view-over {
-moz-background-clip:border;
-moz-background-inline-policy:continuous;
-moz-background-origin:padding;
background:#EFEFEF url(../../resources/images/default/grid/row-over.gif) repeat-x scroll left top;
border:1px solid #DDDDDD;
padding:4px;
}
#images-view .x-view-selected {
-moz-background-clip:border;
-moz-background-inline-policy:continuous;
-moz-background-origin:padding;
background:#EFF5FB url(images/selected.gif) no-repeat scroll right bottom;
border:1px solid #99BBE8;
padding:4px;
}
#images-view .x-view-selected .thumb {
-moz-background-clip:border;
-moz-background-inline-policy:continuous;
-moz-background-origin:padding;
background:transparent none repeat scroll 0 0;
}
#images-view .loading-indicator {
background-image:url(../../resources/images/default/grid/loading.gif);
background-position:left center;
background-repeat:no-repeat;
font-size:11px;
margin:10px;
padding-left:20px;
}
.menubar {
border-bottom: 1px solid #AACCF6;
color: #222222;
cursor: pointer;
display: block;
height: 20px;
width: 50px;
line-height: 17px;
outline-color: -moz-use-text-color;
outline-style: none;
outline-width: 0;
padding: 3px;
text-align: center;
text-decoration: none;
white-space: nowrap;
}
.menubar:hover { //榧犳爣鎮仠涓婃椂瑙﹀彂
background: #EBF3FD url(../item-over.gif) repeat-x scroll left bottom;
text-decoration: none;
}
var myNewRecord = new TopicRecord({
topic_title: 'Do my job please',
username: 'noobie',
topic_replies: 1,
post_time: new Date(),
user2: 'Animal',
post_text: 'No way dude!'
});
myStore.add(myNewRecord);
鍖歸厤涓枃瀛楃鐨勬鍒欒〃杈懼紡錛?[\u4e00-\u9fa5]
璇勬敞錛氬尮閰嶄腑鏂囪繕鐪熸槸涓ご鐤肩殑浜嬶紝鏈変簡榪欎釜琛ㄨ揪寮忓氨濂藉姙浜?/p>
鍖歸厤鍙屽瓧鑺傚瓧絎?鍖呮嫭姹夊瓧鍦ㄥ唴)錛歔^\x00-\xff]
璇勬敞錛氬彲浠ョ敤鏉ヨ綆楀瓧絎︿覆鐨勯暱搴︼紙涓涓弻瀛楄妭瀛楃闀垮害璁?錛孉SCII瀛楃璁?錛?/p>
鍖歸厤絀虹櫧琛岀殑姝e垯琛ㄨ揪寮忥細\n\s*\r
璇勬敞錛氬彲浠ョ敤鏉ュ垹闄ょ┖鐧借
鍖歸厤HTML鏍囪鐨勬鍒欒〃杈懼紡錛?lt;(\S*?)[^>]*>.*?</\1>|<.*? />
璇勬敞錛氱綉涓婃祦浼犵殑鐗堟湰澶碂緋曪紝涓婇潰榪欎釜涔熶粎浠呰兘鍖歸厤閮ㄥ垎錛屽浜庡鏉傜殑宓屽鏍囪渚濇棫鏃犺兘涓哄姏
鍖歸厤棣栧熬絀虹櫧瀛楃鐨勬鍒欒〃杈懼紡錛歗\s*|\s*$
璇勬敞錛氬彲浠ョ敤鏉ュ垹闄よ棣栬灝劇殑絀虹櫧瀛楃(鍖呮嫭絀烘牸銆佸埗琛ㄧ銆佹崲欏電絳夌瓑)錛岄潪甯告湁鐢ㄧ殑琛ㄨ揪寮?/p>
鍖歸厤Email鍦板潃鐨勬鍒欒〃杈懼紡錛歕w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
璇勬敞錛氳〃鍗曢獙璇佹椂寰堝疄鐢?/p>
鍖歸厤緗戝潃URL鐨勬鍒欒〃杈懼紡錛歔a-zA-z]+://[^\s]*
璇勬敞錛氱綉涓婃祦浼犵殑鐗堟湰鍔熻兘寰堟湁闄愶紝涓婇潰榪欎釜鍩烘湰鍙互婊¤凍闇姹?/p>
鍖歸厤甯愬彿鏄惁鍚堟硶(瀛楁瘝寮澶達紝鍏佽5-16瀛楄妭錛屽厑璁稿瓧姣嶆暟瀛椾笅鍒掔嚎)錛歗[a-zA-Z][a-zA-Z0-9_]{4,15}$
璇勬敞錛氳〃鍗曢獙璇佹椂寰堝疄鐢?/p>
鍖歸厤鍥藉唴鐢佃瘽鍙風爜錛歕d{3}-\d{8}|\d{4}-\d{7}
璇勬敞錛氬尮閰嶅艦寮忓 0511-4405222 鎴?021-87888822
鍖歸厤鑵捐QQ鍙鳳細[1-9][0-9]{4,}
璇勬敞錛氳吘璁疩Q鍙蜂粠10000寮濮?/p>
鍖歸厤涓浗閭斂緙栫爜錛歔1-9]\d{5}(?!\d)
璇勬敞錛氫腑鍥介偖鏀跨紪鐮佷負6浣嶆暟瀛?/p>
鍖歸厤韜喚璇侊細\d{15}|\d{18}
璇勬敞錛氫腑鍥界殑韜喚璇佷負15浣嶆垨18浣?/p>
鍖歸厤ip鍦板潃錛歕d+\.\d+\.\d+\.\d+
璇勬敞錛氭彁鍙杋p鍦板潃鏃舵湁鐢?/p>
鍖歸厤鐗瑰畾鏁板瓧錛?br />
^[1-9]\d*$銆 銆 //鍖歸厤姝f暣鏁?br />
^-[1-9]\d*$ 銆 //鍖歸厤璐熸暣鏁?br />
^-?[1-9]\d*$銆銆 //鍖歸厤鏁存暟
^[1-9]\d*|0$銆 //鍖歸厤闈炶礋鏁存暟錛堟鏁存暟 + 0錛?br />
^-[1-9]\d*|0$銆銆 //鍖歸厤闈炴鏁存暟錛堣礋鏁存暟 + 0錛?br />
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$銆銆 //鍖歸厤姝f誕鐐規暟
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$銆 //鍖歸厤璐熸誕鐐規暟
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$銆 //鍖歸厤嫻偣鏁?br />
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$銆銆 //鍖歸厤闈炶礋嫻偣鏁幫紙姝f誕鐐規暟 + 0錛?br />
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$銆銆//鍖歸厤闈炴嫻偣鏁幫紙璐熸誕鐐規暟 + 0錛?br />
璇勬敞錛氬鐞嗗ぇ閲忔暟鎹椂鏈夌敤錛屽叿浣撳簲鐢ㄦ椂娉ㄦ剰淇
鍖歸厤鐗瑰畾瀛楃涓詫細
^[A-Za-z]+$銆銆//鍖歸厤鐢?6涓嫳鏂囧瓧姣嶇粍鎴愮殑瀛楃涓?br />
^[A-Z]+$銆銆//鍖歸厤鐢?6涓嫳鏂囧瓧姣嶇殑澶у啓緇勬垚鐨勫瓧絎︿覆
^[a-z]+$銆銆//鍖歸厤鐢?6涓嫳鏂囧瓧姣嶇殑灝忓啓緇勬垚鐨勫瓧絎︿覆
^[A-Za-z0-9]+$銆銆//鍖歸厤鐢辨暟瀛楀拰26涓嫳鏂囧瓧姣嶇粍鎴愮殑瀛楃涓?br />
^\w+$銆銆//鍖歸厤鐢辨暟瀛椼?6涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎緇勬垚鐨勫瓧絎︿覆
璇勬敞錛氭渶鍩烘湰涔熸槸鏈甯哥敤鐨勪竴浜涜〃杈懼紡