1.计算字符个数,包括汉字等
js:
<SCRIPT language="JavaScript">
<!--
function countCharacters(str){
var totalCount = 0;
for (var i=0; i<str.length; i++) {
var c = str.charCodeAt(i);
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
totalCount++;
}else {
totalCount+=2;
}
}
// alert(totalCount);
return totalCount;
}
//-->
</SCRIPT>
cs中:
//SimpleContent 这个是需要计算的内容
System.Text.Encoding.Default.GetBytes(SimpleContent).Length;
2.js字符串截取函数(汉字2,英文1)
function countCharacters(str,size){
var totalCount = 0;
var newStr = "";
for (var i=0; i<str.length; i++) {
var c = str.charCodeAt(i);
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
totalCount++;
}else {
totalCount+=2;
}
if(totalCount<size){
newStr = str.substring(0,i+1);
}else{
return newStr+"...";
}
}
return newStr;
}
3.正则表达式,验证数字范围:
我这里的需求只是:请输入0.01-3000之间的数字,保留两位小数。
表达式为:(^[0-9]([.][0-9]{1,2})?$)|(^[1-9][0-9]([.][0-9]{1,2})?$)|(^[1-9][0-9][0-9]([.][0-9]{1,2})?$)|(^(1|2)[0-9][0-9][0-9]([.][0-9]{1,2})?$)|(^3000?$)
如果后面的(3000后面需要小数点的话),应该是:
(^[0-9]([.][0-9]{1,2})?$)|(^[1-9][0-9]([.][0-9]{1,2})?$)|(^[1-9][0-9][0-9]([.][0-9]{1,2})?$)|(^(1|2)[0-9][0-9][0-9]([.][0-9]{1,2})?$)|(^3000([.]0{1,2})?$)
4.给字符串数组排序:
public string[] SortStringArray(string[] stsArray)
{
string stBase = String.Empty;
for (int i = 0; i < stsArray.Length; i++)
{
for (int j = i+1; j < stsArray.Length; j++)
{
if(stsArray[i].Length > stsArray[j].Length)
{
stBase = stsArray[i];
stsArray[i] = stsArray[j];
stsArray[j] = stBase;
}
if (stsArray[i].CompareTo(stsArray[j]) > 0 && stsArray[i].Length == stsArray[j].Length)
{
stBase = stsArray[i];
stsArray[i] = stsArray[j];
stsArray[j] = stBase;
}
}
}
return stsArray;
}
5.最近要替换URL参数,找到几个不错的方法
String.prototype.changeQuery = function(name,value)
{
var reg = new RegExp("(^|)"+ name +"=([^&]*)(|$)");
var tmp = name + "=" + value;
if(this.match(reg) != null)
{
return this.replace(eval(reg),tmp);
}
else
{
if(this.match("[\?]"))
{
return this + "&" + tmp;
}
else
{
return this + "?" + tmp;
}
}
}
使用方法:
var href = http://dlib.apabi.com/?Token=44AB&cult=CN&orgid=pku;
href = href.changeQuery("cult","US);
原地址:http://hi.baidu.com/rayshow/blog/item/05d8a4d3b3f181d6a9ec9a8d.html
function RegularUrl(url,key,value)
{
var fragPos = url.lastIndexOf("#");
var fragment="";
if(fragPos > -1)
{
fragment = url.substring(fragPos);
url = url.substring(0,fragPos);
}
var querystart = url.indexOf("?");
if(querystart < 0 )
{
url +="?"+key+"="+value;
}
else if (querystart==url.length-1)
{
url +=key+"="+value;
}
else
{
var Re = new RegExp(key+"=[^\\s&#]*","gi");
if (Re.test(url))
url=url.replace(Re,key+"="+value);
else
url += "&"+key+"="+value;
}
return url+fragment;
}
原地址:http://www.cnblogs.com/Heroman/archive/2009/03/11/860977.html
//替换指定传入参数的值
function replaceParamVal(paramName,replaceWith) {
var oUrl = this.location.href.toString();
var re=eval('/('+ paramName+'=)([^&]*)/gi');
var nUrl = oUrl.replace(re,paramName+'='+replaceWith);
this.location = nUrl;
}
这个找到的地方比较多:http://blog.youkuaiyun.com/s1ihome/article/details/883881
6.此工作站和主域间的信任关系失败
突然遇到一个这样的问题,查了下,有不少解决方案:http://hi.baidu.com/mr1311/blog/item/0c5ac2225a3710aa4623e8bc.html
很明显是由于这台计算机在域中的账号失效了,只需重新加入到域就行了。首先保证DC能够正常工作,然后打开该计算机的“系统属性”对话框,并切换至“计算机名”选项卡。单击“更改”按钮,在“计算机名称更改”对话框中选中“域”单选框,并在“域”编辑框中键入域名。单击“确定”按钮,这时会弹出一个“计算机名更改”对话框,要求输入有权限加入域的用户名和密码。需要注意的是,这里的“用户名”编辑框应该输入域控制器的管理员账户,并输入合法的密码。通过验证以后会弹出提示已经加入域。(本人是加入域失败情况下加入工作组的,结果重启就OK了!)
7.将DataView转换成DataTable
在vs2005中,这个比较容易,DataTable dt1 = ds.Tables[1];DataView dv1 = dt1.DefaultView; dt1 = dv1.ToTable(); 主要就是dv1.ToTable(); 这里,但是在vs2003中,这个就比较的麻烦:
dv是排序后的,也可以在次方法中操作,这样得到的DataTable就是排序后的...........
public static DataTable GetWiew(DataView dv,DataTable dt)
{
DataTable dNew = dt.Clone();
int idx = 0;
string[] strColNames = new string[dNew.Columns.Count];
foreach (DataColumn col in dNew.Columns)
{
strColNames[idx++] = col.ColumnName;
}
IEnumerator viewEnumerator = dv.GetEnumerator();
while (viewEnumerator.MoveNext())
{
DataRowView drv = (DataRowView)viewEnumerator.Current;
DataRow dr = dNew.NewRow();
try
{
foreach (string strName in strColNames)
{
dr[strName] = drv[strName];
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
dNew.Rows.Add(dr);
}
return dNew;
}
8.SQL判断数据是否存在
--判断表中是否存在该字段
if not exists(select * from syscolumns where id=object_id('WF_DEF_STEP_TBL') and name='ISRamus')
alter table WF_DEF_STEP_TBL
add ISRamus int not null default(0)
go
--判断表中是否存在该表
if exists(select name from sysobjects where name= 'operLog_TB ' and type= 'U ')
drop table operLog_TB
create table operLog_TB(
id int identity(1,1),
operator varchar(20) ,
opertype varchar(20),
remark varchar(50),
ttime datetime
)
go
--判断表中是否存在该条记录
if not exists(select * from wf_type_tbl where type_name='工程结算调整')
begin
declare @type_id int;
select @type_id=(max(type_id)+1) from wf_type_tbl
insert into wf_type_tbl(type_id,type_name,type_desc,is_show) values(@type_id,'工程结算调整','工程结算调整',1)
end
go
9.待续......