存档

‘脚本’ 分类的存档

PHP中关于正则表达式匹配任意字符(包括换行符)的写法

2010年7月27日 wenhui 2 条评论

今天在Java中想使用正则表达式来获取一段文本中的任意字符。于是很随意得就写出如下匹配规则:

(.*)

结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了换行符“\n”以外的所有字符。同时,手册上还有一句话:要匹配包括 ‘\n’ 在内的任何字符,请使用像 ‘[.\n]‘ 的模式。于是我将正则表达式的匹配规则修改如下:

([.\n]*),当然,如果是在java程序中直接写到话,需要改为([.\\n]*)

结果再次运行程序,发现什么内容也取不到了。我百思不得其解,又将其修改为如下规则:

([.|\n]*) 以及 ([\n.]*)

结果还是不行,什么内容都取不到。看来点符号和换行符卯上劲了~

然后上网一查,虽然没有查出上述规则到底是什么地方出问题了,但是查出了一个解决办法,经过一试,果然可以匹配包括换行符在内的任意字符,以下为正确的正则表达式匹配规则:

([\s\S]*)

同时,也可以用 “([\d\D]*)”、“([\w\W]*)” 来表示。

本文可以自由转载,转载时请保留全文并注明出处:
转载自仲子说 [ http://www.wangzhongyuan.com/ ]
原文链接:http://www.wangzhongyuan.com/archives/640.html

ActionScript与JavaScript交互[转]

2010年7月13日 wenhui 没有评论

来自:http://blog.pfan.cn/fengfei/23026.html

AsJsCall.html文件代码:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />
<title>AsJsCall</title>
<style type=”text/css”>
ul{list-style:none; border:dotted; width:350px;};
li{padding:5px};
</style>
<script type=”text/javascript”>
/********* Start AS Call JS Function ***********************/
// 获得在Flash中输入的姓名和性别,并返回显示出来
function getNameSexFromAS( strName, strSex )
{
document.getElementById(“txtNameFromAS”).value = strName;
document.getElementById(“txtSexFromAS”).value  = strSex;
}
/********* End AS Call JS Function ***********************/
/********* Start JS Call AS Function ***********************/
// 获得HTML页面中嵌入的Flash文件
function thisMovie( movieName )
{
// 判断是否为IE浏览器
var isIE = navigator.appName.indexOf(“Microsoft”) != -1;
return (isIE)?window[movieName]:document[movieName];
}
function callASFunction( strName, strSex )
{
// 调用AS中的getNameSexFromJS方法
thisMovie( “extint” ).getNameSexFromJS( strName, strSex );
// 用这句也可以
// document.getElementById(“extint”).getNameSexFromJS( strName, strSex );
}
/********* End JS Call AS Function ***********************/
</script>
</head>
<body>
<object classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0″
id=”extint”
width=”300″
height=”250″
title=”AsJsCall”>
<param name=”movie” value=”AsJsCall.swf” />
<param name=”quality” value=”high” />
<embed src=”AsJsCall.swf” quality=”high” pluginspage=”http://www.macromedia.com/go/getflashplayer” type=”application/x-shockwave-flash” width=”300″ height=”250″></embed>
</object>
<ul>
<li>请输入你的姓名ToAS:&nbsp;&nbsp;<input type=”text” id=”txtName” /></li>
<li>请输入你的性别ToAS:&nbsp;&nbsp;<input type=”text” id=”txtSex” /></li>
<li><input type=”button” id=”btnGetFromAS” value=”调用AS方法” onclick=”javascript:callASFunction( document.getElementById(‘txtName’).value, document.getElementById(‘txtSex’).value )”/></li>
</ul>
<ul>
<li>显示AS中输入的姓名和性别:</li>
<li>&nbsp;&nbsp;<input type=”text” id=”txtNameFromAS”  /></li>
<li>&nbsp;&nbsp;<input type=”text” id=”txtSexFromAS”  /></li>
</ul>
</body>
</html>
AsJsCall.fla: Flash文件代码:
import flash.external.*;
/********* Start AS Call JS Function ***********************/
// 添加click监听事件
btnCallJSFun.addEventListener( “click”, doClick );
// 用户单击btnCallJSFun引发click事件,并执行事件处理函数
function doClick( eventObj:Object ):Void{
//调用JS的getNameSexFromAS方法,后面txtNameToJS.text, txtSexToJS.text为传替的参数
ExternalInterface.call( “getNameSexFromAS”, txtNameToJS.text, txtSexToJS.text );
};
/********* End AS Call JS Function ***********************/
/********* Start JS Call AS Function ***********************/
function getNameSexFromJS( strName:String, strSex:String ):Void
{
txtName.text = strName;
txtSex.text  = strSex;
}
// 注册该getNameSexFromJS方法为JS可以调用的方法
// “getNameSexFromJS”为别名,可以随意写
ExternalInterface.addCallback( “getNameSexFromJS”, this, getNameSexFromJS )
/********* End JS Call AS Function ***********************/
分类: 脚本 标签:

Ext核心代码分析之Function.createDelegate[转]

2010年7月13日 wenhui 没有评论

来自:http://www.javaeye.com/topic/147596

前一段一直在用Ext,可是在扩展的时候总是遇到问题,索性看Ext的源码,但是发现有很多createDelegate这个方法、一直不解,最近经高人点播,了解一二。
所属类:Function
createDelegate( [Object obj], [Array args], [Boolean/Number appendArgs] ) :这个函数的目的是创建委托。
功能:什么都不多说了。看例子

Ext.onReady(function(){
Ext.QuickTips.init()
var myclass=new Object();
//myclass并没有alert方法,我们也不打算为它写一个alert方法
//我们希望它和window.alert有一样的行为,所以我们委托window来做
myclass.alert=window.alert.createDelegate(window);
//我们还希望他有个更漂亮的show方法和Ext.MessageBox的show功能一样
//所以我们又得委托给Ext.MessageBox来做这事了
myclass.show=Ext.MessageBox.show.createDelegate(Ext.MessageBox);
//我们的myclass也有alert和show方法了
myclass.alert(‘alert1′);
myclass.show({title:’title’,msg:’message’});
});

Ext.onReady(function(){  Ext.QuickTips.init()  var myclass=new Object();  //myclass并没有alert方法,我们也不打算为它写一个alert方法  //我们希望它和window.alert有一样的行为,所以我们委托window来做  myclass.alert=window.alert.createDelegate(window);  //我们还希望他有个更漂亮的show方法和Ext.MessageBox的show功能一样  //所以我们又得委托给Ext.MessageBox来做这事了  myclass.show=Ext.MessageBox.show.createDelegate(Ext.MessageBox);  //我们的myclass也有alert和show方法了  myclass.alert(‘alert1′);  myclass.show({title:’title’,msg:’message’});  });

原来就这么简单。

分类: Extjs, 脚本 标签: