在UE中使用如下方式进行替换
查找 :^r^n
替换为:你准备替换的字符串
在Emeditor中使用如下方式进行替换
查找:\r\n
替换为:你准备替换的字符串
两者都需要选中“使用正则表达式”
#######################
vi 使用详解
(一)进入和退出vi
进入:shell模式下,输入vi filename或直接vi。
退出:command模式下。
退出不保存文件(用户未改变文件) :q
强行退出不保存文件 :q!
退出并保存文件 :wq 或 :x 或
退出并强行保存(针对只读文件) :wq!
(二)命令模式与编辑模式切换
shell模式下输入vi filename直接进入command mode
command mode下,按”Insert” or “i” or “I” or “a” or “A”键进入edit mode
edit mode下ESC按键进入command mode
(三)
编辑指令(command mode下起作用)
光标移动: 上下左右分别为k j h l键 (有时候系统不支持标准键盘的方向键)
w或W 光标移至下一个词的开头
b或B 光标移至上一个词的开头
e或E 光标移至下一个词尾
H 光标移至该屏屏首
M 光标移至该屏中间一行行首
L 光标移至该屏屏尾
1G 光标移至文件首行开头
20G 光标移至文件第20行开头
G 光标移至文件末行开头
文本编辑:
a 在光标后加字
A 在行尾加字
i 在光标处加字
I 在行首加字
x 删除光标处的字符
dw 删除光标位置到词尾的所有字符
d$ 删除光标位置到行尾的所有字符
d0 删除光标位置到行首的所有字符
dd 剪切整行
10dd 剪切从当前起向下十行
yy 复制当前行
p 粘贴
:10,50d 删除第10到第50行
u 撤销操作(只能撤销一次)
/字符或字符串+
?字符或字符串+
:g/ 字符或字符串1 /s// 字符或字符串2 /g 在全文用字符或字符串2替换字符或字符串1
o 插入一行
:!command 在下执行系统指令并返回vi (如:!ls)
stringObject.replace(findstring,newstring)
The replace() method returns the string that results when you replace text matching its first argument (a regular expression) with the text of the second argument (a string). If the g (global) flag is not set in the regular expression declaration, this method replaces only the first occurrence of the pattern.
参数说明
findstring 目标字符串
Required. Specifies a string value to find. To perform a global search add a ‘g’ flag to this parameter and to perform a case-insensitive search add an ‘i’ flag
必选项。指定所要替换的字符串。要执行多次匹配需要添加一个”g“标记。要指定模糊匹配需要添加一个”i“标记
newstring 新字符串
Required. Specifies the string to replace the found value from findstring
必选项。指定所要替换的字符串的新值
全部替换可参考如下实现:
1
var testStr = “aaabbbcccdddaaa”;
alert(testStr.replace(/a/g,’x’));
将字符串testStr中的所有a全部替换成x
2
stringObj.replace(new RegExp(oldString,”gm”),newString))
说明:
gm的g表示global, m表示multiLine,可以实现替换全部指定字串。
3
var testStr = “aaabbbcccdddaaa”;
str=str.split(“a”).join(“x”);
alert(str) ;
将字符串testStr中的所有a多替换成x
参考文档:http://wangyi878750.blog.sohu.com/31370032.html
java中URL 的编码和解码函数
java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);
escape() 方法
JavaScript中escape函数是对 String 对象编码以便它们能在所有计算机上可读,使用方法:
escape(charString)
charstring是必选项,参数是要编码的任意 String 对象或文字。
escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 “%20” 。字符值大于 255 的以 %uxxxx 格式存储。
注意 escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURI 和encodeURIComponent 方法。
英文解释:
MSDN JScript Reference: The escape method returns a string value (in Unicode format) that contains the contents of [the argument]. All spaces, punctuation, accented characters, and any other non-ASCII characters are replaced with %xx encoding, where xx is equivalent to the hexadecimal number representing the character. For example, a space is returned as “%20.”
Edge Core Javascript Guide: The escape and unescape functions let you encode and decode strings. The escape function returns the hexadecimal encoding of an argument in the ISO Latin character set. The unescape function returns the ASCII string for the specified hexadecimal encoding value.
encodeURI() 方法
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ‘
英文解释:
MSDN JScript Reference: The encodeURI method returns an encoded URI. If you pass the result to decodeURI, the original string is returned. The encodeURI method does not encode the following characters: “:”, “/”, “;”, and “?”. Use encodeURIComponent to encode these characters.
Edge Core Javascript Guide: Encodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, or three escape sequences representing the UTF-8 encoding of the character
encodeURIComponent() 方法
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( )
英文解释:
MSDN JScript Reference: The encodeURIComponent method returns an encoded URI. If you pass the result to decodeURIComponent, the original string is returned. Because the encodeURIComponent method encodes all characters, be careful if the string represents a path such as /folder1/folder2/default.html. The slash characters will be encoded and will not be valid if sent as a request to a web server. Use the encodeURI method if the string contains more than a single URI component. Mozilla Developer Core Javascript Guide: Encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, or three escape sequences representing the UTF-8 encoding of the character.
因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。
另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。
英文注释:The escape() method does not encode the + character which is interpreted as a space on the server side as well as generated by forms with spaces in their fields. Due to this shortcoming, you should avoid use of escape() whenever possible. The best alternative is usually encodeURIComponent().Use of the encodeURI() method is a bit more specialized than escape() in that it encodes for URIs [REF] as opposed to the querystring, which is part of a URL. Use this method when you need to encode a string to be used for any resource that uses URIs and needs certain characters to remain un-encoded. Note that this method does not encode the ‘ character, as it is a valid character within URIs.Lastly, the encodeURIComponent() method should be used in most cases when encoding a single component of a URI. This method will encode certain chars that would normally be recognized as special chars for URIs so that many components may be included. Note that this method does not encode the ‘ character, as it is a valid character within URIs.
参考:
http://www.ijavascript.cn/shouce/javascript-escape-166.html
http://www.cnblogs.com/winner/archive/2007/08/28/873498.html
http://kuiyuexiang.javaeye.com/blog/177624
http://www.neo.com.tw/archives/000152.html
基本介绍
showModalDialog()
创建一个显示HTML内容的模态对话框。
showModelessDialog()
用来创建一个显示HTML内容的非模态对话框。
使用方法
vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])
参数说明
参数 | 类型 | 说明 |
sURL | 字符串 | 必选参数,用来指定对话框要显示的文档的URL。 |
vArguments | 变体 | 可选参数,用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。 |
sFeatures | 字符串 | 用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。 |
sFeatures可的可选参数如下:
dialogHeight
对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
dialogWidth
对话框宽度。
dialogLeft
离屏幕左的距离。
dialogTop
离屏幕上的距离。
center
{yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
help
{yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
resizable
{yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
status
{yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
scroll
{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。
示例:
window.showModalDialog(‘b.html’, counter,’DialogHeight:100px;DialogWidth:100px;’);
打开一个高度为100px、宽度为100px的对话框,并将本页面的一个id为counter的对象的句柄到b.html页面。
向子窗口传递多个参数
parent.htm
son.htm
从对话框接收父窗口返回值的时候,按如下方式判断一下:
var retValue = “”;
retValue = showModalDialog(….);
if(typeof(retValue) != “undefined”){
rdShowMessageDialog(retValue);
}
参考链接:
http://www.blogjava.net/woxingwosu/archive/2007/07/07/128728.html
在页面还没有ready的时候就调用了htmlObject的appendChild或者innerHTML操作,这样会在IE上弹出一个对话框:“Internet Explorer无法打开站点,已终止操作”
解决方法有两个:
(1)在appendChild或者innerHTML操作处判断document.readyState==”complete”, 若为否,则setTimeout若干秒之后重新作这个操作。
但是,此属性只对ie,opeara有效,ff的document没有readyState属性,永远是undefined.
(2)在script中使用defer属性。意在页面加载完毕后再执行脚本,这样可以避免找不到对象的问题。defer不会考虑外部文件是否全部下载完,只会判当前页面是否全部加载完成。并且,有defer标签的代码块里不能写document.write方法
使用ajax时发生错误的解决方案:在appendChild或者innerHTML操作处判断document.readyState==”complete”, 若为否,则setTimeout若干秒之后重新作这个操作。
如果要加载独立的脚步文件 可靠的做法是在_onload事件中调用,兼容firefox的一种写法如下:
以下为引用的内容:
<script type=”text/javascript”>
functi_on init(arg){
//do sth.
}
if(typeof(document.body._onload)==”undefined”)
window._onload=to_do(arg);
else
document.body._onload=new Functi_on(‘to_do(arg);’);
</script>
from:http://www.liuhaier.com/jiaocheng/jieda/net/200801/15457.html
tmadmin 用来查看TUXEDO的运行情况。在tmadmin命令界面中可以使用如下命令:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
psr
为printserver命令的简写,监控服务器运行情况,查看处理的请求数目、忙闲程度。
参数如下:
-m machine LMID为 machine的所有服务进程
-g groupname 组名为groupname的所有服务进程
-i srvid SRVID为srvid的服务进程
-q qaddress 消息队列为qaddress的所有SERVERS查看server的信息
> psr -i 15058
Prog Name Queue Name Grp Name ID RqDone Load Done Current Service
——— ———- ——– — —— ——— —————
RK016 00060.15058 CHGGRP_+ 15058 0 0 ( IDLE )
-i srvid SRVID为srvid的服务进程
#接续日志记录
RK016 SRVGRP=CHGGRP_SXBOSS SRVID=15058 CONV=N MIN=1 MAX=1
CLOPT=”-A -r -t -o /boss18/run/log/RK016.log”
结果说明:
列号 描述
1. 服务的可执行文件名
2. 服务连接的队列名
3. 组名
4. 服务的数字id
5. 服务已经处理的请求数(该SERVER的所有service的负载因子总和)
6. 服务处理的全部请求的参数和,如果当前没有service被调用,则为IDLE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
psc
为printservice的简写,查看TUXEDO各服务的运行情况和处理的交易数。
psc [-m machine] [-g groupname] [-I srvid] [-q qaddress][-s service] [-a {0|1|2}]
-s service 显示名为sevice的service信息
-a {0|1|2} 显示系统的隐含的service
其他参数与psr命令相同
(2) 结果示例:
> psc -s sK005insert
Service Name Routine Name Prog Name Grp Name ID Machine # Done Status
———— ———— ——— ——– — ——- —— ——
sK005insert sK005insert RK005 CHGGR+ 15046 SXBOSS 33 AVAIL
(3) 结果说明:
列号 描述
1. Service Name :服务名
2. Routine Name :函数名(采用TUXEDO服务的别名机制,一个函数可以对应多个服务名)
3. Prog Name :service 所在的SERVER名
4. Grp Name :组名
5. ID :server的ID号
6. Machine :server所在的LMID
7. # Done :service被调用的次数
8. Status :service的状态。AVAIL表示可用
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pq
查看队列信息
(1) 命令: printqueue 简写:pq [PADRESS]
(2) 结果示例:
pq 00004.05062
Prog Name Queue Name # Serve Wk Queued # Queued Ave. Len Machine
——— ———— —— ——— ——– ——– ——-
CCS_GEDAIPC_50 00004.05062 1 0 0 0.0 simple
(3) 结果说明:
列号 描述
1. Prog Name :队列连接的服务的可执行文件名
2. Queue Name :字符队列名,是RQADDR参数或一个随机值
3. #Serve :连接的服务数
4. Wk Queued :当前队列的所有请求的参数和
5. #Queued :实际请求数
6. Ave.Len :平均队列长度
7. Machine :队列所在机器的LMID
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pclt
4查看客户端信息pclt
(1) 命令: printclient 简写:pclt
-m machine 显示LMID号为machine上的客户端连接
-u username 显示用户名为username 的客户端连接
-c ctlname 显示用户进程为ctlname的客户端连接
(2) 结果示例:
LMID User Name Client Name Time Status Bgn/Cmmt/Abrt
———- ————— ————— ——– ——- ————-
simple ccsmis WSH 17:42:47 IDLE 0/0/0
simple ccsmis tmadmin 0:44:28 IDLE 0/0/0
(3) 结果说明:
列号 描述
1. 已经登录的客户端机器的LMID
2. 用户名,由tpinit()提供的
3. 客户端名,由tpinit()提供的
4. 客户端连接后经过的时间
5. 客户端状态
6. IDLE——表示客户端目前没有任何交易在工作
7. IDLET——表示客户端启动了一个交易
8. BUSY——表示客户端在工作中
9. BUSYT——表示客户端正在交易控制下工作
10. 启动/提交/中断的交易数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bbs
5查看部分统计信息bbs
(4) 命令: bbstats 简写:bbs
> bbs
Current Bulletin Board Status:
Current number of servers: 335
Current number of services: 2324
Current number of request queues: 27
Current number of server groups: 11
Current number of interfaces: 0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
default
6观察某个节点的进程信息default
(5) 命令:default –m
> default -m SITE13
SITE13> psr
Prog Name Queue Name Grp Name ID RqDone Load Done Current Service
——— ———- ——– — —— ——— —————
BBL 30004.00000 SITE13 0 22827 1141350 ..ADJUNCTBB
BRIDGE 836437 SITE13 1 0 0 ( IDLE )
GWADM 00021.00019 BGWGRP1+ 19 0 0 ( IDLE )
GWTDOMAIN 00021.00020 BGWGRP1+ 20 123826 0
GWADM 00022.00021 BGWGRP2+ 21 0 0 ( IDLE )
GWTDOMAIN 00022.00022 BGWGRP2+ 22 0 0 ( IDLE )
GWADM 00025.00027 GWGRP1_+ 27 4 200 ( IDLE )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pnw
7查看消息发送状态pnw
(6) 命令:printnetwork 简写 pnw
> pnw SITE12
SITE12 Connected To: msgs sent msgs received
SITE14 61904 62319
SITE13 61890 62288
SITE11 15972 13564
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8退出管理模式q
命令: quit 简写:q
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//js动态创建一个基本的表格
function createTable(){
var oTableWrap = document.getElementById(“tableWrap”);
var oTable = document.createElement(“table”);
oTableWrap.appendChild(oTable);
var trId = oTable.insertRow();
var tdId = trId.insertCell();
tdId.innerText = ‘aaa’;
tdId = trId.insertCell();
tdId.innerText = ‘bbb’;
}
说明:
1、tableWrap是一个ID为tableWrap的div。
2、两个关键的方法是:insertRow()、insertCell();
3、单元格内容的设置可以通过如下两种方法
tdID.innerHTML = “hello world”;
tdID.innerText = “hello world”;
//获得当前表格的行数
function getRowCount(tableId){
var oTable = document.getElementById(“tableId”);
return oTable.rows.length;
}
//获得指定行的单元格数量
function getCellCount(rowIndex){
var oTable = document.getElementById(“myTable”);
alert(oTable.rows[rowIndex].cells.length);
}
//设置表格属性
function setTrProperty(tableId, rowIndex){
var oTable = document.getElementById(tableId);
var oTr = oTable.rows[rowIndex];
//设置表格宽度
oTable.width = ‘200px’;
//设置表格对齐方式
oTable.align = ‘center’;
//奇怪,以下的两个属性设置无效
//oTable.cellpadding = ’20px’;
//oTable.cellspacing = ’10px’;
//设置背景色
oTr.bgColor = ‘red’;
//设置行内文本的对齐方式
oTr.align = ‘right’;
//添加事件处理器,newClick是一个自定义方法名
oTr.onclick = newClick;
}
说明:
cellpadding、cellspacing属性的设置不能生效,不知道为什么。
//删除表格
function removeTable(){
var oTable = document.getElementById(“myTable”);
oTable.parentNode.removeChild(oTable);
}
//删除指定表格所有的行
function removeTrs(tableId){
var oTable = document.getElementById(tableId);
oTable.removeNode(true);
}
//删除表格的指定行
function removeRow(TableId, trIndex){
var oTable = document.getElementById(“myTable”);
oTable.deleteRow(trIndex);
}
function newClick(){
alert(“hello”);
}
获得当前行的索引值并删除当前行:
onclick=”alert(this.parentElement.parentElement.rowIndex);this.parentElement.parentElement.removeNode(true);”
a | |
b |