正则表达式在STARLIMS中的应用总结
1、在DataGrid中更新数据时,校验输入内容是否是全角字母或数字的方法
使用方法:在DataGrid中的OnUpdatingCell事件中调用下面的方法,并传入相应参数即可。
function ValidateDataGridUpdatingValue( sender, eventArgs )
{
var strTest = /[\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A]+/;
if(strTest.test(eventArgs["Value"]))
{
eventArgs["Value"] = eventArgs["InitialValue"];
return false;
}
else
{
return true;
}
}
2、对于输入的普通字符串校验全角字母与数字的方法
function ValidateFullWidthStr(strText)
{
var strTest = /[\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A]+/;
if(strTest.test(strText))
{
return true;
}
}
此方法的扩展
对于具有Text属性的控件(如TextBox,TextArea,ComboBox等),可以将参数设为控件对象,根据对象的Text进行校验。
function ValidateFullWidthStr( sender )
{
var strTest = /[\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A]+/;
if(strTest.test(sender.Text.Trim()))
{
return true;
}
}
3、获取字符串的字节总数
此方法为中英文与数字(包括英文与数字的全角)混合字符串的计算方法:
function ByteCount(strText)
{
var byteCount = 0;
for(var i=0; i<strText.Length; i++)
{
if( strText.charCodeAt(i) > 255 || strText.charCodeAt(i) < 0)
{
byteCount+=2;
}
else
{
byteCount++;
}
}
return byteCount;
}
下面的方法是用正则表达式计算字符串的字节总数,其计算的字符串类型和效果与上一方法相同。
function ByteCount(strText)
{
var byteCount = strText.replace(/[^\x00-\xff]/g,"**").length;
return byteCount;
}
正则表达式 备注
^-?[1-9]\\d*$ 整数
^[1-9]\\d*$ 正整数
^-[1-9]\\d*$ 负整数
^([+-]?)\\d*\\.?\\d+$ 数字
d*\\-?\\d+$ 电话或手机
^[1-9]\\d*|0$ 正数(正整数 + 0)
^-[1-9]\\d*|0$ 负数(负整数 + 0)
^([+-]?)\\d*\\.\\d+$ 浮点数
^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$ 正浮点数
^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$ 负浮点数
^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$ 浮点数
^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$ 非负浮点数(正浮点数 + 0)
^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$ 非正浮点数(负浮点数 + 0)
^\\w+((-\\w+)|([url=file://\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$]\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$[/url] 电子邮件
^[a-fA-F0-9]{6}$ 颜色
^http?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$" URL
^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$ 仅中文
^[\\x00-\\xFF]+$ 仅ACSII字符
^\\d{6}$ 邮编
^(13|15)[0-9]{9}$ 手机
^([url=file://\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$]\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$[/url] ip4地址
^\\S+$ 非空
(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$ 图片
(.*)\\.(rar|zip|7zip|tgz)$ rar文件
^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$ 日期
^[1-9]*[1-9][0-9]*$ QQ号码
(\\d{3}-|\\d{4}-)?(\\d{8}|\\d{7}) 国内电话
^(?!\\d)[a-zA-Z0-9\\u4e00-\\u9fa5]+$ 用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
^[A-Za-z]+$ 字母
^[A-Z]+$ 大写字母
^[a-z]+$ 小写字母
^[1-9]([0-9]{14}|[0-9]{17})$ 身份证
^-?[1-9]\\d*$ 整数
^[1-9]\\d*$ 正整数
^-[1-9]\\d*$ 负整数
^([+-]?)\\d*\\.?\\d+$ 数字
d*\\-?\\d+$ 电话或手机
^[1-9]\\d*|0$ 正数(正整数 + 0)
^-[1-9]\\d*|0$ 负数(负整数 + 0)
^([+-]?)\\d*\\.\\d+$ 浮点数
^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$ 正浮点数
^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$ 负浮点数
^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$ 浮点数
^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$ 非负浮点数(正浮点数 + 0)
^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$ 非正浮点数(负浮点数 + 0)
^\\w+((-\\w+)|([url=file://\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$]\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$[/url] 电子邮件
^[a-fA-F0-9]{6}$ 颜色
^http?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$" URL
^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$ 仅中文
^[\\x00-\\xFF]+$ 仅ACSII字符
^\\d{6}$ 邮编
^(13|15)[0-9]{9}$ 手机
^([url=file://\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$]\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$[/url] ip4地址
^\\S+$ 非空
(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$ 图片
(.*)\\.(rar|zip|7zip|tgz)$ rar文件
^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$ 日期
^[1-9]*[1-9][0-9]*$ QQ号码
(\\d{3}-|\\d{4}-)?(\\d{8}|\\d{7}) 国内电话
^(?!\\d)[a-zA-Z0-9\\u4e00-\\u9fa5]+$ 用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
^[A-Za-z]+$ 字母
^[A-Z]+$ 大写字母
^[a-z]+$ 小写字母
^[1-9]([0-9]{14}|[0-9]{17})$ 身份证