下面是小编整理的一个在Flash里面使用的正则表达式的类,本文共7篇,希望能帮助到大家!

篇1:一个在Flash里面使用的正则表达式的类
正则
一个在Flash里面使用的正则表达式的类,使用这个类的原因是FLASH里面对文本输入检测要求不高,例如就不能检测输入的邮件格式是否正确;class RegExp {
public var const:String = null;
public var source:String = null;
public var global:Boolean = false;
public var ignoreCase:Boolean = false;
public var multiline:Boolean = false;
public var lastIndex:Number = null;
public static var _xrStatic:Number = null;
public var _xr:Number = null;
public static var _xp:Number = null;
public static var _xxa:Array = null;
public static var _xxlp:Number = null;
public var _xq:Number = null;
public var _xqc:Number = null;
public static var d:Number = null;
public static var _xiStatic:Number = null;
public var _xi:Number = 0;
public static var _xxlm:String = null;
public static var _xxlc:String = null;
public static var _xxrc:String = null;
public static var lastMatch:String = null;
public static var leftContext:String = null;
public static var rightContext:String = null;
public static var _xa:Array = new Array;
public static var lastParen:String = null;
public static var _xaStatic:Array = new Array();
public static var $1:String = null;
public static var $2:String = null;
public static var $3:String = null;
public static var $4:String = null;
public static var $5:String = null;
public static var $6:String = null;
public static var $7:String = null;
public static var $8:String = null;
public static var $9:String = null;
private static var _setString:Boolean = RegExp.setStringMethods();
function RegExp() {
if (arguments[0] == null) {
} else {
const = “RegExp”;
compile.apply(this, arguments);
}
}
public function invStr(sVal:String):String {
var s = sVal;
var l = length(s);
var j;
var c;
var r = “”;
for (var i = 1; i<255; i++) {
c = chr(i);
j = 0;
while (j<=l && substring(s, 1+j++, 1) != c) {
}
if (j>l) {
r += c;
}
}
return s;
}
public function compile() {
this.source = arguments[0];
if (arguments.length>1) {
var flags = (arguments[1]+’’).toLowerCase();
for (var i = 0; i
if (substring(flags, i+1, 1) == “g”) {
this.global = true;
}
if (substring(flags, i+1, 1) == “i”) {
this.ignoreCase = true;
}
if (substring(flags, i+1, 1) == “m”) {
this.multiline = true;
}
}
}
if (arguments.length < 3) {
var root = true;
RegExp._xrStatic = 1;
//Paren counter
var i = 0;
} else {
var root = false;
this._xr = RegExp._xrStatic++;
var i = arguments[2];
}
this.lastIndex = 0;
/*
Compile the regular expression
The array of character definition objects will be created:
q[n].t --> type of match required: 0 = exact
1 = in char set
2 = not in char set
3 = paren
4 = ref to paren
7 = new “OR” section
9 = beginning of line
10 = end of line
q[n].s --> character or character set
q[n].a --> character has to repeat at least a times
q[n].b --> character has to repeat at most b times
*/
var re = this.source;
var ex;
var l = length(re);
var q = [];
var qc = 0;
var s;
var range = false;
var ca;
var cb;
var atEnd = false;
var char;
for (i=i; i
var thischar = substring(re, i+1, 1);
if (thischar == “”) {
i++;
char = false;
thischar = substring(re, i+1, 1);
} else {
char = true;
}
var nextchar = substring(re, i+2, 1);
q[qc] = new Object();
q[qc].t = 0;
q[qc].a = 0;
q[qc].b = 999;
q[qc].c = -10;
if (char) {
// Handle special characters
if (thischar == “(”) {
//Opening paren
ex = new RegExp(re, (this.ignoreCase ? “gi” : “g”), i+1);
i = RegExp._xiStatic;
q[qc].t = 3;
thischar = ex;
nextchar = substring(re, i+2, 1);
} else if (!root && thischar == “)”) {
//Closing paren
break;
} else if (thischar == “^”) {
//Must be located at the beginning of string/line
if (qc == 0 || q[qc-1].t == 7) {
q[qc].t = 9;
q[qc].a = 1;
q[qc].b = 1;
qc++;
}
continue;
} else if (thischar == “$”) {
//Must be located at the end of string/line
if (root) {
atEnd = true;
}
continue;
} else if (thischar == “[”) {
//This is a character set
i++;
if (nextchar == “^”) {
q[qc].t = 2;
i++;
} else {
q[qc].t = 1;
}
thischar = “”;
range = false;
while (i
if (range) {
//Previous char was “-”, so create a range
if (s == “”) {
}
cb = s == “” ? (s == “b” ? chr(8) : substring(re, 1+i++, 1)) : s;
ca = ord(substring(thischar, length(thischar), 1))+1;
while (cb>=(s=chr(ca++))) {
thischar += s;
}
range = false;
} else {
if (s == “-” && length(thischar)>0) {
//Character range is being defined
range = true;
} else {
if (s == “”) {
//Predefined char set may follow
s = substring(re, 1+i++, 1);
if (s == “d”) {
thischar += “0123456789”;
} else if (s == “D”) {
thischar += invStr(“0123456789”);
} else if (s == “s”) {
thischar += “ fnrtv”;
} else if (s == “S”) {
thischar += invStr(“ fnrtv”);
} else if (s == “w”) {
thischar += “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_”;
} else if (s == “W”) {
thischar += invStr(“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_”);
} else if (s == “b”) {
thischar += chr(8);
} else if (s == “”) {
thischar += s;
}
} else {
thischar += s;
}
}
}
}
if (range) thischar += “-”;
i--;
var nextchar = substring(re, i+2, 1);
} else if (thischar == “|”) {
//OR section
if (atEnd) {
q[qc].t = 10;
q[qc].a = 1;
q[qc].b = 1;
qc++;
q[qc] = new Object();
atEnd = false;
}
q[qc].t = 7;
q[qc].a = 1;
q[qc].b = 1;
qc++;
continue;
} else if (thischar == “.”) {
q[qc].t = 2;
thischar = “n”;
} else if (thischar == “*” || thischar == “?” || thischar == “+”) {
continue;
}
} else {
if (thischar>=“1” && thischar<=“9”) {
q[qc].t = 4;
} else if (thischar == “b”) {
q[qc].t = 1;
thischar = “--wb--”;
} else if (thischar == “B”) {
q[qc].t = 2;
thischar = “--wb--”;
} else if (thischar == “d”) {
q[qc].t = 1;
thischar = “0123456789”;
} else if (thischar == “D”) {
q[qc].t = 2;
thischar = “0123456789”;
} else if (thischar == “s”) {
q[qc].t = 1;
thischar = “ fnrtv”;
} else if (thischar == “S”) {
q[qc].t = 2;
thischar = “ fnrtv”;
} else if (thischar == “w”) {
q[qc].t = 1;
thischar = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_”;
} else if (thischar == “W”) {
q[qc].t = 2;
thischar = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_”;
}
}
//Counting metacharacters
if (nextchar == “*”) {
q[qc].s = thischar;
qc++;
i++;
} else if (nextchar == “?”) {
q[qc].s = thischar;
q[qc].b = 1;
qc++;
i++;
} else if (nextchar == “+”) {
q[qc].s = thischar;
q[qc].a = 1;
qc++;
i++;
} else if (nextchar == “{”) {
var comma = false;
var rangeA = 0;
range = “”;
i++;
while (i+1
if (!comma && s == “,”) {
comma = true;
rangeA = Number(range);
rangeA = Math.floor(isNaN(rangeA) ? 0 : rangeA);
if (rangeA<0) {
rangeA = 0;
}
range = “”;
} else {
range += s;
}
}
var rangeB = Number(range);
rangeB = Math.floor(isNaN(rangeB) ? 0 : rangeB);
if (rangeB<1) {
rangeB = 999;
}
if (rangeB
rangeB = rangeA;
}
q[qc].s = thischar;
q[qc].b = rangeB;
q[qc].a = comma ? rangeA : rangeB;
qc++;
} else {
q[qc].s = thischar;
q[qc].a = 1;
q[qc].b = 1;
qc++;
}
}
if (root && atEnd) {
q[qc] = new Object();
q[qc].t = 10;
q[qc].a = 1;
q[qc].b = 1;
qc++;
}
if (!root) {
RegExp._xiStatic = i;
this.source = substring(re, arguments[2]+1, i-arguments[2]);
}
if (RegExp.d) {
for (var i = 0; i
trace(“xr”+this._xr+’ ’+q[i].t+“ : ”+q[i].a+“ : ”+q[i].b+“ : ”+q[i].s);
}
}
this._xq = q;
this._xqc = qc;
RegExp._xp = 0;
}
public function test() {
if (RegExp._xp++ == 0) {
RegExp._xxa = [];
//Temp array for storing paren matches
RegExp._xxlp = 0;
//Last paren
}
// q[n].c --> count of matches
// q[n].i --> index within the string
var str = arguments[0]+’’;
var re;
var q = this._xq;
var qc = this._xqc;
var qb;
var c;
var cl;
var ct;
var s;
var l = length(str);
var ix = this.global ? this.lastIndex : 0;
var ix_ = ix;
var str_ = str;
if (this.ignoreCase) {
str = str.toLowerCase();
}
var r = new Object();
r.i = -1;
var i = -1;
while (i
i++;
if (RegExp.d) {
trace(“New section started at i=”+i);
}
ix = ix_;
qb = i;
q[qb].c = -10;
var atEnd = false;
while (i>qb || ix
if (q[i].t == 7) {
//New “OR” section coming
break;
} else if (q[i].t == 9) {
i++;
if (i == qb+1) {
var atStart = true;
qb = i;
}
q[qb].c = -10;
continue;
} else {
if (r.i>=0 && ix>=r.i) {
//There is already better match, so quit searching
break;
}
if (q[i].c == -10) {
if (RegExp.d) {
trace(“Lookup #”+i+“ at index ”+ix+“ for \’”+q[i].s+“\’ type ”+q[i].t);
}
//Count the # of matches
var m = 0;
q[i].i = ix;
if (q[i].t == 0) {
//Exact match
c = this.ignoreCase ? q[i].s.toLowerCase() : q[i].s;
while (m
if (substring(str, 1+ix, 1) == c) {
m++;
ix++;
} else {
break;
}
}
} else if (q[i].t == 1) {
//In char set
if (q[i].s == “--wb--”) {
q[i].a = 1;
if (ix>0 && ix
ct = substring(str, ix, 1);
if (ct == “ ” || ct == “\n”) {
m = 1;
}
if (m == 0) {
ct = substring(str, 1+ix, 1);
if (ct == “ ” || ct == “\n”) {
m = 1;
}
}
} else {
m = 1;
}
} else {
c = this.ignoreCase ? q[i].s.toLowerCase() : q[i].s;
cl = length(c);
var cs;
while (m
ct = substring(str, 1+ix, 1);
cs = 0;
while (cs<=cl && substring(c, 1+cs++, 1) != ct) {
}
if (cs<=cl) {
m++;
ix++;
} else {
break;
}
}
}
} else if (q[i].t == 2) {
//Not in char set
c = this.ignoreCase ? q[i].s.toLowerCase() : q[i].s;
cl = length(c);
if (q[i].s == “--wb--”) {
q[i].a = 1;
if (ix>0 && ix
ct = substring(str, ix, 1);
s = substring(str, 1+ix, 1);
if (ct != “ ” && ct != “\n” && s != “ ” && s != “\n”) {
m = 1;
}
} else {
m = 0;
}
} else {
while (m
ct = substring(str, 1+ix, 1);
cs = 0;
while (cs<=cl && substring(c, 1+cs++, 1) != ct) {
}
if (cs<=cl) {
break;
} else {
m++;
ix++;
}
}
}
} else if (q[i].t == 10) {
//End of string/line must be next
s = substring(str, 1+ix, 1);
m = (this.multiline && (s == “\n” || s == “\r”)) || ix == l ? 1 : 0;
} else if (q[i].t == 3) {
//Regular expression in parens
re = q[i].s;
q[i].ix = [];
q[i].ix[m] = ix;
//Save index if need to retreat
re.lastIndex = ix;
while (m
cl = length(RegExp._xxlm);
if (cl>0) {
ix += cl;
m++;
q[i].ix[m] = ix;
} else {
m = q[i].a;
q[i].ix[m-1] = ix;
break;
}
}
if (m == 0) {
RegExp._xxlm = “”;
}
if (re._xr>RegExp._xxlp) {
RegExp._xxlp = re._xr;
}
RegExp._xxa[Number(re._xr)] = RegExp._xxlm;
} else if (q[i].t == 4) {
//Back reference to paren
if (RegExp._xp>=(c=Number(q[i].s))) {
c = RegExp._xxa[c];
c = this.ignoreCase ? c.toLowerCase() : c;
cl = length(c);
q[i].ix = [];
q[i].ix[m] = ix;
if (cl>0) {
while (m
if (substring(str, 1+ix, cl) == c) {
m++;
ix += cl;
q[i].ix[m] = ix;
} else {
break;
}
}
} else {
m = 0;
q[i].a = 0;
}
} else {
//Paren is not ready, treat number as charcode
c = chr(c);
q[i].ix = [];
q[i].ix[m] = ix;
while (m
if (substring(str, 1+ix, 1) == c) {
m++;
ix++;
q[i].ix[m] = ix;
} else {
break;
}
}
}
}
q[i].c = m;
if (RegExp.d) {
trace(“ ”+m+“ matches found”);
}
}
if (q[i].c
if (RegExp.d) {
trace(“ not enough matches”);
}
//Not enough matches
if (i>qb) {
//Retreat back and decrease # of assumed matches
i--;
q[i].c--;
if (q[i].c>=0) {
ix = (q[i].t == 3 || q[i].t == 4) ? q[i].ix[q[i].c] : (q[i].i+q[i].c);
}
if (RegExp.d) {
trace(“Retreat to #”+i+“ c=”+q[i].c+“ index=”+ix);
}
} else {
if (RegExp._xp>1) {
//If this is a paren, failing to find first match is fatal
break;
}
if (atStart) {
//Match must be at the start of string/line
if (this.multiline) {
//Jump to the beginning of the next line
while (ix<=l) {
s = substring(str, 1+ix++, 1);
if (s == “\n” || s == “\r”) {
break;
}
}
q[i].c = -10;
} else {
//No match
break;
}
} else {
//Start a new search from next position
ix++;
q[i].c = -10;
}
}
} else {
if (RegExp.d) {
trace(“ enough matches!”);
}
//# of matches ok, proceed to next
i++;
if (i == qc || q[i].t == 7) {
if (RegExp.d) {
trace(“Saving better result: r.i = q[”+qb+“].i = ”+q[qb].i);
}
r.i = q[qb].i;
r.li = ix;
break;
} else {
q[i].c = -10;
}
}
}
}
while (i i++; } //Jump to the next “OR” section } if (r.i<0) { this.lastIndex = 0; if (RegExp._xp-- == 1) { RegExp._xxa = []; RegExp._xxlp = 0; } return false; } else { ix = r.li; this._xi = r.i; RegExp._xxlm = substring(str_, r.i+1, ix-r.i); RegExp._xxlc = substring(str_, 1, r.i); RegExp._xxrc = substring(str_, ix+1, l-ix); if (ix == r.i) { ix++; } this.lastIndex = ix; if (RegExp._xp-- == 1) { RegExp.lastMatch = RegExp._xxlm; RegExp.leftContext = RegExp._xxlc; RegExp.rightContext = RegExp._xxrc; RegExp._xaStatic = RegExp._xxa; RegExp.lastParen = RegExp._xxa[Number(RegExp._xxlp)]; for (i=1; i<10; i++) { RegExp[“$”+i] = RegExp._xaStatic[Number(i)]; } } return true; } } public function exec() { var str = arguments[0]+’’; if (str == ’’) { return false; } var t = this.test(str); if (t) { var ra = new Array(); ra.index = this._xi; ra.input = str; ra[0] = RegExp.lastMatch; var l = RegExp._xaStatic.length; for (var i = 1; i ra[i] = RegExp._xaStatic[Number(i)]; } } else { var ra = null; } return ra; } public static function setStringMethods() { if(String.prototype.match != undefined) { return; } String.prototype.match = function() { if (typeof (arguments[0]) != “object”) { return null; } if (arguments[0].const != “RegExp”) { return null; } var re = arguments[0]; var s = this.valueOf(); var ip = 0; var rc = 0; if (re.global) { re.lastIndex = 0; while (re.test(s)) { if (rc == 0) { var ra = new Array(); } ra[rc++] = RegExp.lastMatch; ip = re.lastIndex; } re.lastIndex = ip; } else { var ra = re.exec(s); rc++; } return (rc == 0) ? null : ra; }; String.prototype.replace = function() { if (typeof (arguments[0]) != “object”) { return null; } if (arguments[0].const != “RegExp”) { return null; } var re = arguments[0]; var rs = arguments[1]+’’; var s = this; var r = “”; re.lastIndex = 0; if (re.global) { var ip = 0; var ix = 0; while (re.test(s)) { //Replace backreferences in rs var i = 0; var l = length(rs); var c = “”; var pc = “”; var nrs = “”; while (i c = substring(rs, 1+i++, 1); if (c == “$” && pc != “”) { c = substring(rs, 1+i++, 1); if (isNaN(Number(c)) || Number(c)>9) { nrs += “$”+c; } else { nrs += RegExp._xaStatic[Number(c)]; } } else { nrs += c; } pc = c; } r += substring(s, ix+1, re._xi-ix)+nrs; ix = re._xi+length(RegExp.lastMatch); ip = re.lastIndex; } re.lastIndex = ip; } else { if (re.test(s)) { r += RegExp.leftContext+rs; } } r += re.lastIndex == 0 ? s : RegExp.rightContext; return r; }; String.prototype.search = function() { if (typeof (arguments[0]) != “object”) { return null; } if (arguments[0].const != “RegExp”) { return null; } var re = arguments[0]; var s = this; re.lastIndex = 0; var t = re.test(s); return t ? re._xi : -1; }; String.prototype.old_split = String.prototype.split; String.prototype.split = function() { if (typeof (arguments[0]) == “object” && arguments[0].const == “RegExp”) { var re = arguments[0]; var lm = arguments[1] == null ? 9999 : Number(arguments[1]); if (isNaN(lm)) { lm = 9999; } var s = this; var ra = new Array(); var rc = 0; var gs = re.global; re.global = true; re.lastIndex = 0; var ip = 0; var ipp = 0; var ix = 0; while (rc //trace(re._xi + “ ” + ix + “ ” + RegExp.lastMatch); if (re._xi != ix) { ra[rc++] = substring(s, ix+1, re._xi-ix); } ix = re._xi+length(RegExp.lastMatch); ipp = ip; ip = re.lastIndex; } if (rc == lm) { re.lastIndex = ipp; } else { re.lastIndex = ip; } if (rc == 0) { ra[rc] = s; } else { if (rc ra[rc++] = RegExp.rightContext; } } re.global = gs; return ra; } else { return this.old_split(arguments[0], arguments[1]); } }; return true; } }
var re = new RegExp(“w{3}”, “i”);
trace(re.test(“ABC”));
篇2:在PPT中FLASH的使用
相同大家在用PowerPoint插入SWF等Flash动画时会碰到好多问题吧,诸如:ppt中插入swf文件却只可以播放一遍?这可能是你的FLASH没有设置跳回去的按扭!还有一些问题例如不从头播放等,今天就特为大家解决这事,做了个详细的教程!
1.首先插入SWF文件。得用控件即可不多说
2.做一个PLAY按钮,注意名称用flash1或其它,下面代码要对应
写一段代码:
Private Sub Cmd1_Click()
flash1.Play
End Sub
表示点击这个按钮就播放SWF
3.再制作一个PAUSE按钮
和上面步骤一样,
代码变一下:
Private Sub Cmd1_Click()
flash1.Stop
End Sub
大家一看即懂吧
4.看了上面二步。大家应该会制作其它按钮了吧。呵。这样就可以很好的解决PPT中插入SWF时的各种播放等问题。
篇3:关于类成员函数在中的使用
实际工作中模板使用还比较多,而且使用类成员函数或者变量作为模板参数的情况是很多的,在这里先小小举个例子,代码非常简单,但是在实际中确实非常常用,而且实用。
//我只是个测试类而已class TestClass{public: void testFunc(int val){} double testFunc2(double val){return 0;}public: int m_testVal;};//也会用到的写法,在不是模板的情况下还挺实用的typedef void (TestClass::*test_func)(int);//不说boost,不谈lambda,仅仅只提模板而已//成员函数的情况template
篇4:Flash AS 3.0菜鸟学飞教程:类的编写之不使用库元件
AS3.0 类的编写(不使用库元件)
在上一讲中我们使用的是已创建好的影片剪辑,并在库中做类的链接,这对有复杂图形的创作是比较好的选择,如果你能熟练的应用绘图API绘制出你想要的任意图形,就可以不使用库元件,直接在类中编写,下面我们用这种方式编写类代码:
创建一个DocumentClass类(创建100个随机摆放的圆)
1.代码:
2.
3.package {
4.
5.import flash.display.MovieClip;
6.public class DocumentClass extends MovieClip {
7.// 属性
8.private var _circle:Drag_circle;
9.private const maxBalls:int = 100;
10.// 构造函数
11.public function DocumentClass {
12.
13.var i:int;
14.// 循环创建小球
15.for(i = 0; i<= maxBalls; i++) {
16.// 创建可拖动小球的实例
17._circle = new Drag_circle();
18.// 设置小球实例的一些属性
19._circle.scaleY = _circle.scaleX = Math.random();
20.// 场景中的x,y位置
21._circle.x = Math.round(Math.random() *(stage.stageWidth - _circle.width));
22._circle.y = Math.round(Math.random() *(stage.stageHeight - _circle.height));
23.// 在场景上显示
24.addChild(_circle);
25.}
26.}
27.}
28.}
Drag_circle类 (绘制一个红色的圆,有拖拽功能)
1.代码:
2.
3.package {
4.
5.import flash.display.Sprite;
6.import flash.display.Shape;
7.import flash.events.MouseEvent;
8.
9.public class Drag_circle extends Sprite {
10.
11.private var _circle:Sprite;
12.
13.public function Drag_circle() {
14.
15._circle = new Sprite();
16._circle.graphics.beginFill(0xff0000);
17._circle.graphics.drawCircle(0, 0, 10);
18._circle.graphics.endFill();
19._circle.buttonMode = true;
20.addChild(_circle);
21.
22.
23._circle.addEventListener(MouseEvent.CLICK,onClick);
24._circle.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
25._circle.addEventListener(MouseEvent.MOUSE_UP,onUp);
26.
27.}
28.
29.
30.private function onClick(event:MouseEvent):void {
31.trace(“circle clicked”);
32.}
33.
34.private function onDown(event:MouseEvent):void {
35._circle.startDrag();
36.}
37.
38.private function onUp(event:MouseEvent):void {
39._circle.stopDrag();
40.}
41.}
42.}
新建一个fla文件,保存在Document.as和Drag_class.as类同一目录中,
注意:与上回讲的元件类不同在于,不再需要让场景中有任何内容,因为我们已在主类DocumentClass.as中动态的添加和显示了circle_mc。在属性面板中的文档类输入框中输入类名 DocumentClass,就可以测试了。(你可以尝试着给小球加入随机颜色或渐变颜色)
篇5:Excel 使用技巧:在一个单元格内输入多个值
在一个单元格内输入多个值
我们有时需要在某个单元格内连续输入多个数值,以查看引用此单元格的其他单元格的效果,
Excel 使用技巧集锦:在一个单元格内输入多个值
,
但每次输入一个值后按回车键,活动单元格均默认下移一个单元格,非常不便。其实可以采用以下方法:
单击鼠标选定单元格,然后按住Ctrl键再次单击鼠标选定此单元格,此时,单元格周围将出现实线框,再输入数据,敲回车键就不会移动了。
篇6:浅析一个MYSQL语法(在查询中使用count)的兼容性问题
最近更 新
学习mysql之后的一点总结(基础)
Mysql跨表更新 多表update sql语句总结
解析Mysql Profiling的使用
mysql替换表中的字符串的sql语句
mysql误删root用户或者忘记root密码解决方
mysql常见错误集锦
windows和linux安装mysql后启用日志管理功
MySQL 在触发器里中断记录的插入或更新?
mysql中RAND随便查询记录效率问题和解决
MySQL无法启动1067错误的又一种解决方法(
热 点 排 行
mysql安装图解 mysql图文安装教程
超详细mysql left join,right jo
Can''t connect to MySQL server
Mysql命令行导入sql数据
MYSQL 数据库导入导出命令
Mysql字符串截取函数SUBSTRING的
MySQL数据库备份与恢复方法
MySQL server has gone away 问题
windows下mysql忘记root密码的解
MySQL日期数据类型、时间类型使用
篇7:曲安奈德益康唑霜在湿疹类皮肤病中的使用
曲安奈德益康唑霜在湿疹类皮肤病中的使用
摘要:目的':观察曲安奈德益康唑霜治疗湿疹皮肤病的疗效。方法:选择本院116例湿疹皮肤病患者,用曲安奈德益康唑霜涂抹患处,每日2次,3周为1个疗程。结果:痊愈率为26.7%,显效率为62.97%,总有效率为89.7%。结论:曲安奈德益康唑治疗湿疹类皮肤病安全有效。
关键词:曲安奈德;益康唑霜;湿疹
湿疹是由多种内、外因素引起的真皮浅层及表皮炎症。病情复杂,一般认为与变态反应有关[1]。瘙痒剧烈,影响患者的工作及生活,因此,临床工作中需要找到效果满意、使用方便的药物进行治疗。自2007年至今,笔者使用西安杨森制药有限公司生产的曲安奈德益康唑霜治疗湿疹类皮肤病患者116例,取得了较好的治疗效果,现报道如下:
1 资料与方法
1.1 一般资料
本科门诊患湿疹类皮肤病的患者,同意参加观察者,包括急性湿疹患者(不包括大量渗出和大片糜烂面患者)38例,亚急性湿疹患者23例,慢性湿疹患者55例。所有患者无严重全身疾病,皮损面积3~10 cm2,1个月内均未接受过系统抗生素、抗真菌药或皮质类固醇治疗,1周内局部未使用过抗生素、抗真菌药或皮质类固醇治疗;凡对益康唑或曲安奈德过敏者或皮损广泛患者,均不作为入选标准。
1.2 方法
用西安杨森制药有限公司生产的曲安奈德益康唑霜涂抹患处,每日2次,3周为1个疗程,每周随访1次。治疗期间,停止使用其他药物。
1.3 观察方法及疗效标准
将患者的整体情况(红斑、鳞屑/痂皮、抓痕、苔藓,瘙痒和烧灼/刺痛感等)记分,即0分=无,1分=轻度,2分=中度,3分=严重。测量皮损的大小,计算面积。皮损广泛者,选择有代表性的靶部位进行评分。具体计算方法:症状和体征评分下降指数=(治疗前总积分-治疗后总积分)/治疗前总积分×100%。将治疗结果分为4级,治愈为积分值>95%,显效为积分值60%~95%,好转为积分值20%~59%,无效为积分值<20%,总有效率为痊愈率加显效率。
2 结果
2.1 疗效
曲安奈德益康唑霜治疗湿疹类皮肤病的痊愈率为26.7%,显效率为62.97%,总有效率为89.7%,见表1。
2.2 不良反应
116例中,有3例阴囊湿疹患者在用药1周内出现潮红,继续用药皮损消退,其余患者均未出现不良反应,未发现皮肤萎缩。
3 讨论
各种内外因刺激如感染、内分泌及代谢改变、血液循环障碍、神经精神因素、遗传因素及食物、环境等相互作用,导致湿疹,一些患者的发病机制可能与迟发型变态反应有关。曲安奈德益康唑霜主要成分为0.1%曲安奈德和1%硝酸益康唑。前者是一种中效皮质类固醇,具有抗感染和抗过敏作用。也有不少研究表明湿疹的病因除了与变态反应有关外,不可低估细菌感染因素。王美娜[2]等从42例皮炎湿疹类患者皮损处取材进行细菌培养,均不同程度培养出金黄色葡萄球菌、表皮葡萄球菌和枯草芽胞菌、肠菌等,治疗1~2周后细菌培养阳性率明显降低,皮肤病症状和体征明显改善。硝酸益康唑是人工合成的广谱抗真菌药,通过抑制细胞色素P450依赖酶,干扰真菌细胞的麦角固醇合成,使真菌细胞生长受到抑制[1]。同时硝酸益康唑对革兰阳性细菌具有较好的抑菌作用,其效力与新霉素相同[3]。曲安奈德与硝酸益康唑合用,不但可以加强曲安奈德长期使用的安全性,而且可以治疗湿疹类皮损合并的真菌与细菌感染。
笔者在临床中观察到,曲安奈德益康唑霜使湿疹类皮肤病的总有效率达89.7%,起效时间较快,1周内达74.14%。116例患者中有3例阴囊湿疹患者皮肤出现局部潮红,但不影响继续治疗,曲安奈德益康唑霜治疗湿疹安全有效,是一种较理想的外用制剂。
参考文献:
[1]张学军.皮肤性病学[M].北京:人民卫生出版社,2001:89.
[2]王美娜,高玉雪,赵晔.派瑞松治疗皮炎湿疹类皮肤病临床药效及抗菌作用观察[J].临床皮肤科杂志,2000,29(2):102-103.
[3]耿建丽,赵辨.外用抗炎抗菌复方制剂-派瑞松[J].临床皮肤科杂志,1999,28(3):189.
文档为doc格式