?? gwp.js
字號:
//系統定義的特殊字符集
var specialChars = /[!@#\$%\^&\*\(\)\{\}\[\]<>_\+\|~`-]|[=\/\\\?;:,!·#¥%……—*()——、《》,。?'"]/g;
var keyArray = new Array();
/******************************************************
*以下是對字符串對象(String)的擴展函數,任何String對象都可
*使用這些函數,例如:
var str = " dslf dsf sfd ";
alert(str.trim()); //顯示這樣的字符串"dslf dsf sfd"
alert(str.deleteSpace()); //顯示這樣的字符串"dslfdsfsfd"
******************************************************/
/*
function:在字符串左邊補指定的字符串
parameter:
countLen:結果字符串的長度
addStr:要附加的字符串
return:處理后的字符串
*/
String.prototype.lpad = function(countLen,addStr)
{
// 如果countLen不是數字,不處理返回
if(isNaN(countLen))return this;
// 初始字符串長度大于指定的長度,則不需處理
if(initStr.length >= countLen)return this;
var initStr = this; // 初始字符串
var tempStr = new String(); // 臨時字符串
for(;;)
{
tempStr += addStr;
if(tempStr.length >= countLen - initStr.length)
{
tempStr = tempStr.substring(0,countLen - initStr.length);
break;
}
}
return tempStr + initStr;
}
/*
function:在字符串右邊補指定的字符串
parameter:
countLen:結果字符串的長度
addStr:要附加的字符串
return:處理后的字符串
*/
String.prototype.rpad = function(countLen,addStr)
{
// 如果countLen不是數字,不處理返回
if(isNaN(countLen))return this;
// 初始字符串長度大于指定的長度,則不處理返回
if(initStr.length >= countLen)return this;
var initStr = this; // 初始字符串
for(;;)
{
initStr += addStr;
if(initStr.length >= countLen)
{
initStr = initStr.substring(0,countLen);
break;
}
}
return initStr;
}
/*
function: 去掉字符串中所有的空格
return: 處理后的字符串
*/
String.prototype.atrim = function()
{
// 用正則表達式將右邊空格用空字符串替代。
return this.replace(/(\s+)|( +)/g, "");
}
// 增加一個名為 trim 的函數作為
// String 構造函數的原型對象的一個方法。
String.prototype.trim = function()
{
// 用正則表達式將前后空格用空字符串替代。
return this.replace(/(^\s+)|(\s+$)|(^ +)|( +$)/g, "");
}
/*
function:去掉字符串左邊的空格
return:處理后的字符串
*/
String.prototype.ltrim = function()
{
return this.replace(/(^\s+)|(^ +)/g,"");
}
/*
function:去掉字符串右邊的空格
return:處理后的字符串
*/
String.prototype.rtrim = function()
{
return this.replace(/(\s+$)|( +$)/g,"");
}
/*
function:獲得字符串的字節數
return:字節數
example:"test測試".getByte值為8
*/
String.prototype.getByte = function()
{
var intCount = 0;
for(var i = 0;i < this.length;i ++)
{
// Ascii碼大于255是雙字節的字符
var ascii = this.charCodeAt(i).toString(16);
var byteNum = ascii.length / 2.0;
intCount += (byteNum + (ascii.length % 2) / 2);
}
return intCount;
}
/*
function: 指定字符集半角字符全部轉變為對應的全角字符
parameter:
dbcStr: 要轉換的半角字符集合
return: 轉換后的字符串
*/
String.prototype.dbcToSbc = function(dbcStr)
{
var resultStr = this;
for(var i = 0;i < this.length;i ++)
{
switch(dbcStr.charAt(i))
{
case ",":
resultStr = resultStr.replace(/\,/g,",");
break;
case "!":
resultStr = resultStr.replace(/\!/g,"!");
break;
case "#":
resultStr = resultStr.replace(/\#/g,"#");
break;
case "|":
resultStr = resultStr.replace(/\|/g,"|");
break;
case ".":
resultStr = resultStr.replace(/\./g,"。");
break;
case "?":
resultStr = resultStr.replace(/\?/g,"?");
break;
case ";":
resultStr = resultStr.replace(/\;/g,";");
break;
}
}
return resultStr;
}
//獲取字符串按字節數指定的字串
String.prototype.bytesubstr = function(index1,index2)
{
var resultStr = "";
var byteCount = 0;
for(var i = index1;i < index2;i ++)
{
if(i > this.length)break;
if(this.charCodeAt(i) > 255)byteCount += 2;
else byteCount += 1;
if(byteCount > (index2 - index1))break;
resultStr += this.charAt(i);
}
return resultStr;
}
//判斷字符串是否是數字字符串,若是則返回true,否則返回false
String.prototype.isNumber = function() {
return (this.isInt() || this.isFloat());
}
//判斷字符串是否是浮點數字符串,若是則返回true,否則返回false
String.prototype.isFloat = function() {
return /^(?:-?|\+?)\d*\.\d+$/g.test(this);
}
//判斷字符串是否是整數字符串,若是則返回true,否則返回false
String.prototype.isInt = function() {
return /^(?:-?|\+?)\d+$/g.test(this);
}
//判斷字符串是否是正數字符串,若是正數則返回true,否則返回false
String.prototype.isPlus = function() {
return this.isPlusInt() || this.isPlusFloat();
}
//判斷字符串是否是正浮點數字符串,若是正數則返回true,否則返回false
String.prototype.isPlusFloat = function() {
return /^\+?\d*\.\d+$/g.test(this);
}
//判斷字符串是否是正整數字符串,若是正數則返回true,否則返回false
String.prototype.isPlusInt = function() {
return /^\+?\d+$/g.test(this);
}
//判斷字符串是否是負數字符串,若是正數則返回true,否則返回false
String.prototype.isMinus = function() {
return this.isMinusInt() || this.isMinusFloat();
}
//判斷字符串是否是負浮點數字符串,若是正數則返回true,否則返回false
String.prototype.isMinusFloat = function() {
return /^-\d*\.\d+$/g.test(this);
}
//判斷字符串是否是負整數字符串,若是正數則返回true,否則返回false
String.prototype.isMinusInt = function() {
return /^-\d+$/g.test(this);
}
//判斷字符串是否只包含單詞字符,若是則返回true,否則返回false
String.prototype.isLeastCharSet = function() {
return !(/[^A-Za-z0-9_]/g.test(this));
}
//判斷字符串是否是Email字符串,若是則返回true,否則返回false
String.prototype.isEmail = function() {
return /^\w+@.+\.\w+$/g.test(this);
}
//判斷字符串是否是郵政編碼字符串,若是則返回true,否則返回false
String.prototype.isZip = function() {
return /^\d{6}$/g.test(this);
}
//判斷字符串是否是固定電話號碼字符串,若是則返回true,否則返回false
String.prototype.isFixedTelephone = function() {
return /^(\d{2,4}-)?((\(\d{3,5}\))|(\d{3,5}-))?\d{3,18}(-\d+)?$/g.test(this);
}
//判斷字符串是否是手機電話號碼字符串,若是則返回true,否則返回false
String.prototype.isMobileTelephone = function() {
return /^13\d{9}$/g.test(this);
}
//判斷字符串是否是電話號碼字符串,若是則返回true,否則返回false
String.prototype.isTelephone = function() {
return this.isMobileTelephone() || this.isFixedTelephone();
}
//判斷字符串是否是日期字符串,若是則返回true,否則返回false
String.prototype.isDate = function() {
return /^\d{1,4}-(?:(?:(?:0?[1,3,5,7,8]|1[0,2])-(?:0?[1-9]|(?:1|2)[0-9]|3[0-1]))|(?:(?:0?[4,6,9]|11)-(?:0?[1-9]|(?:1|2)[0-9]|30))|(?:(?:0?2)-(?:0?[1-9]|(?:1|2)[0-9])))$/g.test(this);
}
//判斷字符串是否是時間字符串,若是則返回true,否則返回false
String.prototype.isTime = function() {
return /^(?:(?:0?|1)[0-9]|2[0-3]):(?:(?:0?|[1-5])[0-9]):(?:(?:0?|[1-5])[0-9]).(?:\d{1,3})$/g.test(this);
}
//判斷字符串是否是日期時間字符串,若是則返回true,否則返回false
String.prototype.isDateTime = function() {
return /^\d{1,4}-(?:(?:(?:0?[1,3,5,7,8]|1[0,2])-(?:0?[1-9]|(?:1|2)[0-9]|3[0-1]))|(?:(?:0?[4,6,9]|11)-(?:0?[1-9]|(?:1|2)[0-9]|30))|(?:(?:0?2)-(?:0?[1-9]|(?:1|2)[0-9]))) +(?:(?:0?|1)[0-9]|2[0-3]):(?:(?:0?|[1-5])[0-9]):(?:(?:0?|[1-5])[0-9]).(?:\d{1,3})$/g.test(this);
}
//比較日期字符串,若相等則返回0,否則返回當前日期字符串和目標字符串之間相差的毫秒數,若其中一個字符串不符合日期或日期時間格式,則返回null
String.prototype.compareDate = function(target) {
var thisDate = this.toDate();
var targetDate = target.toDate();
if (thisDate == null || targetDate == null) {
return null;
}
else {
return thisDate.getTime() - targetDate.getTime();
}
}
//判斷日期字符串指定的時期是否是當前日期,若是則返回true,否則返回false
String.prototype.isToday = function() {
return this.trim().split(' ')[0].compareDate(getSysDate()) == 0;
}
//判斷日期字符串指定的時期是否是當前日期之前,若是則返回true,否則返回false
String.prototype.isBeforeDate = function(baseDate) {
if (baseDate == null) {
baseDate = getSysDate();
}
return this.trim().split(' ')[0].compareDate(baseDate.trim().split(' ')[0]) < 0;
}
//判斷日期字符串指定的時期是否是當前日期之后,若是則返回true,否則返回false
String.prototype.isAfterDate = function(baseDate) {
if (baseDate == null) {
baseDate = getSysDate();
}
return this.trim().split(' ')[0].compareDate(baseDate.trim().split(' ')[0]) > 0;
}
//判斷日期時間字符串指定的時期是否是指定日期時間之前,若是則返回true,否則返回false
String.prototype.isBeforeDateTime = function(baseDateTime) {
if (baseDateTime == null) {
baseDateTime = getSysDateTime();
}
return this.trim().compareDate(baseDateTime.trim()) < 0;
}
//判斷日期時間字符串指定的時期是否是指定日期時間之后,若是則返回true,否則返回false
String.prototype.isAfterDateTime = function(baseDateTime) {
if (baseDateTime == null) {
baseDateTime = getSysDateTime();
}
return this.trim().compareDate(baseDateTime.trim()) > 0;
}
//判斷字符串中是否含有特殊字符,若有則返回true,否則返回false
String.prototype.hasSpecialChar = function() {
specialChars.test('');
return specialChars.test(this);
}
//刪除字符串中的空格
String.prototype.deleteSpace = function() {
return this.replace(/( +)|( +)/g, '');
}
//刪除字符串中指定的字符串
String.prototype.remove = function(str) {
if (str == null || str == '') {
return this;
}
return this.replace(str.toRegExp('g'), '');
}
//將字符串中包含的find字符串替換成target字符串,返回替換后的結果字符串
String.prototype.replaceByString = function(find, target) {
return this.replace(find.toRegExp('g'), target);
}
//將字符串轉換成相應的正則表達式
String.prototype.toRegExp = function(regType) {
if (regType == null || regType.trim() == '') {
regType = 'g';
}
var find = ['\\\\', '\\$', '\\(', '\\)', '\\*', '\\+', '\\.', '\\[', '\\]', '\\?', '\\^', '\\{', '\\}', '\\|', '\\/'];
var str = this;
for (var i = 0; i < find.length; i++) {
str = str.replace(new RegExp(find[i], 'g'), find[i]);
}
return new RegExp(str, regType);
}
//將字符串轉換成Date對象,要求字符串必須符合日期或日期時間格式,否則返回null
String.prototype.toDate = function() {
if (this.isDate()) {
var data = this.split('-');
return new Date(parseInt(data[0].replace(/^0+/g, '')), parseInt(data[1].replace(/^0+/g, '')) - 1, parseInt(data[2].replace(/^0+/g, '')));
}
else if (this.isDateTime()) {
var data = this.split(' ');
var date = data[0].split('-');
var time = data[1].split(".")[0].split(':');
return new Date(parseInt(date[0].replace(/^0+/g, '')), parseInt(date[1].replace(/^0+/g, '')) - 1, parseInt(date[2].replace(/^0+/g, '')),
parseInt(time[0].replace(/^0+/g, '')), parseInt(time[1].replace(/^0+/g, '')), parseInt(time[2].replace(/^0+/g, '')));
}
else {
return null;
}
}
//將字符串按HTML需要的編碼方式編碼
String.prototype.encodeHtml = function() {
var strToCode = this.replace(/</g,"<");
strToCode = strToCode.replace(/>/g,">");
return strToCode;
}
//將字符串按HTML需要的編碼方式解碼
String.prototype.decodeHtml = function() {
var strToCode = this.replace(/</g,"<");
strToCode = strToCode.replace(/>/g,">");
return strToCode;
}
/*********************************************
*字符串對象(String)擴展函數結束
*********************************************/
/*********************************************
*以下是各種獨立的全局公用函數,程序可直接調用
*********************************************/
//表單提交函數
function pageshow(formI, action, check, target) {
var canDisable = (window.event != null && window.event.srcElement != null && window.event.srcElement.tagName.toLowerCase() == "button");
if (canDisable) {
window.event.srcElement.disabled = true;
}
if (check != true || checkValidity(formI)) {
document.forms.item(formI).action = action;
if (target != null && target.trim() != "") {
document.forms.item(formI).target = target;
}
document.forms.item(formI).submit();
}
else {
if (canDisable) {
window.event.srcElement.disabled = false;
}
}
}
//列表頁面刪除函數
function remove(formI, action, name,disMsg) {
if (hasSelected(name)) {
var argv = remove.arguments;
var argc = remove.arguments.length;
var msg = (argc > 3) ? argv[3] : "確定要刪除選中的記錄嗎?";
if (confirm(msg)) {
pageshow(formI, action);
}
}
else {
alert("請選擇記錄!");
}
}
//記錄修改或詳細信息函數
function detail(formI, action, name) {
if (hasSelectedOne(name)) {
pageshow(formI, action);
}
else {
alert("請選擇一條記錄進行此操作!");
}
}
//對指定域設置默認的日期時間,
//elName為要設置的域的名稱,
//offset為與當前時間的差值(毫秒數),在當前日期時間以前為負數,在當前日期時間以后為正數,默認為0
function setDefaultDateTime(elName, offset){
if (offset == null) {
offset = 0;
}
var mydate = new Date();
mydate.setTime(mydate.getTime() + offset);
document.all(elName).value = mydate.getFullYear() + "-" + (mydate.getMonth()+1) + "-" + mydate.getDate()
+ " " + mydate.getHours() + ":" + mydate.getMinutes() + ":" + mydate.getSeconds() + "." + mydate.getMilliseconds();
}
//對指定域設置默認的日期,
//elName為要設置的域的名稱,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -