//全角半角変換用文字列定数
Const FullKana = "。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワ゛゜";
Const HalfKana = "。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚";
Const FullKana2 = "ヴガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ";
Const HalfKana2 = "ヴガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ";
Const FullAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
Const HalfAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
Const FullNumber = "0123456789";
Const HalfNumber = "0123456789";
Const FullSymbol = " !”#$%&’()*+,-./:;<=>?@[¥]^_‘{|}~";
Const HalfSymbol = " !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~";
//大文字小文字変換用文字列定数
Const UpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ";
Const LowerCase = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
//ひらがなカタカナ変換用文字列定数
Const HiraKana = "をぁぃぅぇぉゃゅょっあいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわんゐゑ";
Const HiraKana2= "がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ";
Const HiraKana3= "う゛";
Const KataKana = "ヲァィゥェォャュョッアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワンヰヱ";
Const KataKana2= "ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ";
Const KataKana3= "ヴ";
Const KataKana4= "ヲァィゥェォャュョッアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン";
Const KataKana5= "ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ";
Function TranslateString(OriginalString, strSource, strDestination)
Dim strResult
strResult = OriginalString
Dim nLength
nLength = Len(strSource)
Dim i
For i = 1 To nLength
strResult = Replace(strResult, Mid(strSource, i, 1), Mid(strDestination, i, 1))
Next
TranslateString = strResult
End Function
Function EncodeWKana(OriginalString)
Dim strResult
strResult = OriginalString
If chkWKana.checked Then
strResult = TranslateString(strResult, FullKana, HalfKana)
Dim nLength
nLength = Len(FullKana2)
Dim i
For i = 1 To nLength
strResult = Replace(strResult, Mid(FullKana2, i, 1), Mid(HalfKana2, ((i -1) *2) +1, 2))
Next
End If
EncodeWKana = strResult
End Function
Function EncodeWAlphabet(OriginalString)
Dim strResult
strResult = OriginalString
If chkWAlphabet.checked Then
strResult = TranslateString(strResult, FullAlphabet, HalfAlphabet)
End If
EncodeWAlphabet = strResult
End Function
Function EncodeWNumber(OriginalString)
Dim strResult
strResult = OriginalString
If chkWNumber.checked Then
strResult = TranslateString(strResult, FullNumber, HalfNumber)
End If
EncodeWNumber = strResult
End Function
Function EncodeWSymbol(OriginalString)
Dim strResult
strResult = OriginalString
If chkWSymbol.checked Then
strResult = TranslateString(strResult, FullSymbol, HalfSymbol)
End If
EncodeWSymbol = strResult
End Function
Function EncodeCase(OriginalString)
Dim strResult
strResult = OriginalString
If chkCase.checked Then
strResult = TranslateString(strResult, UpperCase, LowerCase)
End If
EncodeCase = strResult
End Function
Function EncodeKana(OriginalString)
Dim strResult
strResult = OriginalString
If chkKana.checked Then
strResult = Replace(strResult, HiraKana3, KanaKana3)
strResult = TranslateString(strResult, HiraKana, KataKana)
strResult = TranslateString(strResult, HiraKana2, KataKana2)
End If
EncodeKana = strResult
End Function
Function DecodeWKana(OriginalString)
Dim strResult
strResult = OriginalString
If chkWKana.checked Then
Dim nLength
nLength = Len(FullKana2)
Dim i
For i = 1 To nLength
strResult = Replace(strResult, Mid(HalfKana2, ((i -1) *2) +1, 2), Mid(FullKana2, i, 1))
Next
strResult = TranslateString(strResult, HalfKana, FullKana)
End If
DecodeWKana = strResult
End Function
Function DecodeWAlphabet(OriginalString)
Dim strResult
strResult = OriginalString
If chkWAlphabet.checked Then
strResult = TranslateString(strResult, HalfAlphabet, FullAlphabet)
End If
DecodeWAlphabet = strResult
End Function
Function DecodeWNumber(OriginalString)
Dim strResult
strResult = OriginalString
If chkWNumber.checked Then
strResult = TranslateString(strResult, HalfNumber, FullNumber)
End If
DecodeWNumber = strResult
End Function
Function DecodeWSymbol(OriginalString)
Dim strResult
strResult = OriginalString
If chkWSymbol.checked Then
strResult = TranslateString(strResult, HalfSymbol, FullSymbol)
End If
DecodeWSymbol = strResult
End Function
Function DecodeCase(OriginalString)
Dim strResult
strResult = OriginalString
If chkCase.checked Then
strResult = TranslateString(strResult, LowerCase, UpperCase)
End If
DecodeCase = strResult
End Function
Function DecodeKana(OriginalString)
Dim strResult
strResult = OriginalString
If chkKana.checked Then
Dim nLength
nLength = Len(HiraKana2)
Dim i
For i = 1 To nLength
strResult = Replace(strResult, Mid(KataKana5, ((i -1) *2) +1, 2), Mid(HiraKana2, i, 1))
Next
strResult = TranslateString(strResult, KataKana, HiraKana)
strResult = TranslateString(strResult, KataKana2, HiraKana2)
strResult = Replace(strResult, KanaKana3, HiraKana3)
strResult = TranslateString(strResult, KataKana4, HiraKana)
End If
DecodeKana = strResult
End Function
Function EncodeString(OriginalString)
Dim strResult
strResult = OriginalString
strResult = EncodeCase(strResult)
strResult = EncodeKana(strResult)
strResult = EncodeWKana(strResult)
strResult = EncodeWAlphabet(strResult)
strResult = EncodeWNumber(strResult)
strResult = EncodeWSymbol(strResult)
EncodeString = strResult
End Function
Function DecodeString(OriginalString)
Dim strResult
strResult = OriginalString
strResult = DecodeWKana(strResult)
strResult = DecodeWAlphabet(strResult)
strResult = DecodeWNumber(strResult)
strResult = DecodeWSymbol(strResult)
strResult = DecodeCase(strResult)
strResult = DecodeKana(strResult)
DecodeString = strResult
End Function
入力チェックについて方法もありますよ
星期日, 十月 07, 2007
Javascript trim
/**
*
* Javascript trim, ltrim, rtrim
* http://www.webtoolkit.info/
*
*
**/
function trim(str, chars) {
return ltrim(rtrim(str, chars), chars);
}
function ltrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
function rtrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
三种方法
*
* Javascript trim, ltrim, rtrim
* http://www.webtoolkit.info/
*
*
**/
function trim(str, chars) {
return ltrim(rtrim(str, chars), chars);
}
function ltrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
function rtrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
三种方法
Javascript sprintf
Several programming languages implement a sprintf function, to output a formatted string. It originated from the C programming language, printf function. Its a string manipulation function.
This is limited sprintf Javascript implementation. Function returns a string formatted by the usual printf conventions. See below for more details. You must specify the string and how to format the variables in it. Possible format values:
%% - Returns a percent sign
%b - Binary number
%c - The character according to the ASCII value
%d - Signed decimal number
%f - Floating-point number
%o - Octal number
%s - String
%x - Hexadecimal number (lowercase letters)
%X - Hexadecimal number (uppercase letters)
Additional format values. These are placed between the % and the letter (example %.2f):
+ (Forces both + and - in front of numbers. By default, only negative numbers are marked)
- (Left-justifies the variable value)
0 zero will be used for padding the results to the right string size
[0-9] (Specifies the minimum width held of to the variable value)
.[0-9] (Specifies the number of decimal digits or maximum string length)
If you plan using UTF-8 encoding in your project don't forget to set the page encoding to UTF-8 (Content-Type meta tag), and use Javascript UTF-8 utility found on this website.
/**
*
* Javascript sprintf
* http://www.webtoolkit.info/
*
*
**/
sprintfWrapper = {
init : function () {
if (typeof arguments == "undefined") { return null; }
if (arguments.length < 1) { return null; }
if (typeof arguments[0] != "string") { return null; }
if (typeof RegExp == "undefined") { return null; }
var string = arguments[0];
var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);
var matches = new Array();
var strings = new Array();
var convCount = 0;
var stringPosStart = 0;
var stringPosEnd = 0;
var matchPosEnd = 0;
var newString = '';
var match = null;
while (match = exp.exec(string)) {
if (match[9]) { convCount += 1; }
stringPosStart = matchPosEnd;
stringPosEnd = exp.lastIndex - match[0].length;
strings[strings.length] = string.substring(stringPosStart, stringPosEnd);
matchPosEnd = exp.lastIndex;
matches[matches.length] = {
match: match[0],
left: match[3] ? true : false,
sign: match[4] || '',
pad: match[5] || ' ',
min: match[6] || 0,
precision: match[8],
code: match[9] || '%',
negative: parseInt(arguments[convCount]) < 0 ? true : false,
argument: String(arguments[convCount])
};
}
strings[strings.length] = string.substring(matchPosEnd);
if (matches.length == 0) { return string; }
if ((arguments.length - 1) < convCount) { return null; }
var code = null;
var match = null;
var i = null;
for (i=0; i<matches.length; i++) {
if (matches[i].code == '%') { substitution = '%' }
else if (matches[i].code == 'b') {
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(2));
substitution = sprintfWrapper.convert(matches[i], true);
}
else if (matches[i].code == 'c') {
matches[i].argument = String(String.fromCharCode(parseInt(Math.abs(parseInt(matches[i].argument)))));
substitution = sprintfWrapper.convert(matches[i], true);
}
else if (matches[i].code == 'd') {
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)));
substitution = sprintfWrapper.convert(matches[i]);
}
else if (matches[i].code == 'f') {
matches[i].argument = String(Math.abs(parseFloat(matches[i].argument)).toFixed(matches[i].precision ? matches[i].precision : 6));
substitution = sprintfWrapper.convert(matches[i]);
}
else if (matches[i].code == 'o') {
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(8));
substitution = sprintfWrapper.convert(matches[i]);
}
else if (matches[i].code == 's') {
matches[i].argument = matches[i].argument.substring(0, matches[i].precision ? matches[i].precision : matches[i].argument.length)
substitution = sprintfWrapper.convert(matches[i], true);
}
else if (matches[i].code == 'x') {
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
substitution = sprintfWrapper.convert(matches[i]);
}
else if (matches[i].code == 'X') {
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
substitution = sprintfWrapper.convert(matches[i]).toUpperCase();
}
else {
substitution = matches[i].match;
}
newString += strings[i];
newString += substitution;
}
newString += strings[i];
return newString;
},
convert : function(match, nosign){
if (nosign) {
match.sign = '';
} else {
match.sign = match.negative ? '-' : match.sign;
}
var l = match.min - match.argument.length + 1 - match.sign.length;
var pad = new Array(l < 0 ? 0 : l).join(match.pad);
if (!match.left) {
if (match.pad == "0" || nosign) {
return match.sign + pad + match.argument;
} else {
return pad + match.sign + match.argument;
}
} else {
if (match.pad == "0" || nosign) {
return match.sign + match.argument + pad.replace(/0/g, ' ');
} else {
return match.sign + match.argument + pad;
}
}
}
}
sprintf = sprintfWrapper.init;
This is limited sprintf Javascript implementation. Function returns a string formatted by the usual printf conventions. See below for more details. You must specify the string and how to format the variables in it. Possible format values:
%% - Returns a percent sign
%b - Binary number
%c - The character according to the ASCII value
%d - Signed decimal number
%f - Floating-point number
%o - Octal number
%s - String
%x - Hexadecimal number (lowercase letters)
%X - Hexadecimal number (uppercase letters)
Additional format values. These are placed between the % and the letter (example %.2f):
+ (Forces both + and - in front of numbers. By default, only negative numbers are marked)
- (Left-justifies the variable value)
0 zero will be used for padding the results to the right string size
[0-9] (Specifies the minimum width held of to the variable value)
.[0-9] (Specifies the number of decimal digits or maximum string length)
If you plan using UTF-8 encoding in your project don't forget to set the page encoding to UTF-8 (Content-Type meta tag), and use Javascript UTF-8 utility found on this website.
/**
*
* Javascript sprintf
* http://www.webtoolkit.info/
*
*
**/
sprintfWrapper = {
init : function () {
if (typeof arguments == "undefined") { return null; }
if (arguments.length < 1) { return null; }
if (typeof arguments[0] != "string") { return null; }
if (typeof RegExp == "undefined") { return null; }
var string = arguments[0];
var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);
var matches = new Array();
var strings = new Array();
var convCount = 0;
var stringPosStart = 0;
var stringPosEnd = 0;
var matchPosEnd = 0;
var newString = '';
var match = null;
while (match = exp.exec(string)) {
if (match[9]) { convCount += 1; }
stringPosStart = matchPosEnd;
stringPosEnd = exp.lastIndex - match[0].length;
strings[strings.length] = string.substring(stringPosStart, stringPosEnd);
matchPosEnd = exp.lastIndex;
matches[matches.length] = {
match: match[0],
left: match[3] ? true : false,
sign: match[4] || '',
pad: match[5] || ' ',
min: match[6] || 0,
precision: match[8],
code: match[9] || '%',
negative: parseInt(arguments[convCount]) < 0 ? true : false,
argument: String(arguments[convCount])
};
}
strings[strings.length] = string.substring(matchPosEnd);
if (matches.length == 0) { return string; }
if ((arguments.length - 1) < convCount) { return null; }
var code = null;
var match = null;
var i = null;
for (i=0; i<matches.length; i++) {
if (matches[i].code == '%') { substitution = '%' }
else if (matches[i].code == 'b') {
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(2));
substitution = sprintfWrapper.convert(matches[i], true);
}
else if (matches[i].code == 'c') {
matches[i].argument = String(String.fromCharCode(parseInt(Math.abs(parseInt(matches[i].argument)))));
substitution = sprintfWrapper.convert(matches[i], true);
}
else if (matches[i].code == 'd') {
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)));
substitution = sprintfWrapper.convert(matches[i]);
}
else if (matches[i].code == 'f') {
matches[i].argument = String(Math.abs(parseFloat(matches[i].argument)).toFixed(matches[i].precision ? matches[i].precision : 6));
substitution = sprintfWrapper.convert(matches[i]);
}
else if (matches[i].code == 'o') {
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(8));
substitution = sprintfWrapper.convert(matches[i]);
}
else if (matches[i].code == 's') {
matches[i].argument = matches[i].argument.substring(0, matches[i].precision ? matches[i].precision : matches[i].argument.length)
substitution = sprintfWrapper.convert(matches[i], true);
}
else if (matches[i].code == 'x') {
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
substitution = sprintfWrapper.convert(matches[i]);
}
else if (matches[i].code == 'X') {
matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
substitution = sprintfWrapper.convert(matches[i]).toUpperCase();
}
else {
substitution = matches[i].match;
}
newString += strings[i];
newString += substitution;
}
newString += strings[i];
return newString;
},
convert : function(match, nosign){
if (nosign) {
match.sign = '';
} else {
match.sign = match.negative ? '-' : match.sign;
}
var l = match.min - match.argument.length + 1 - match.sign.length;
var pad = new Array(l < 0 ? 0 : l).join(match.pad);
if (!match.left) {
if (match.pad == "0" || nosign) {
return match.sign + pad + match.argument;
} else {
return pad + match.sign + match.argument;
}
} else {
if (match.pad == "0" || nosign) {
return match.sign + match.argument + pad.replace(/0/g, ' ');
} else {
return match.sign + match.argument + pad;
}
}
}
}
sprintf = sprintfWrapper.init;
Javascript string pad
This functions returns the input string padded on the left, the right, or both sides to the specified padding length. If the optional argument "pad" is not supplied, the input is padded with spaces, otherwise it is padded with characters from "pad" up to the "len" length.
/**
*
* Javascript string pad
* http://www.webtoolkit.info/
*
**/
var STR_PAD_LEFT = 1;
var STR_PAD_RIGHT = 2;
var STR_PAD_BOTH = 3;
function pad(str, len, pad, dir) {
if (typeof(len) == "undefined") { var len = 0; }
if (typeof(pad) == "undefined") { var pad = ' '; }
if (typeof(dir) == "undefined") { var dir = STR_PAD_RIGHT; }
if (len + 1 >= str.length) {
switch (dir){
case STR_PAD_LEFT:
str = Array(len + 1 - str.length).join(pad) + str;
break;
case STR_PAD_BOTH:
var right = Math.ceil((padlen = len - str.length) / 2);
var left = padlen - right;
str = Array(left+1).join(pad) + str + Array(right+1).join(pad);
break;
default:
str = str + Array(len + 1 - str.length).join(pad);
break;
} // switch
}
return str;
}
/**
*
* Javascript string pad
* http://www.webtoolkit.info/
*
**/
var STR_PAD_LEFT = 1;
var STR_PAD_RIGHT = 2;
var STR_PAD_BOTH = 3;
function pad(str, len, pad, dir) {
if (typeof(len) == "undefined") { var len = 0; }
if (typeof(pad) == "undefined") { var pad = ' '; }
if (typeof(dir) == "undefined") { var dir = STR_PAD_RIGHT; }
if (len + 1 >= str.length) {
switch (dir){
case STR_PAD_LEFT:
str = Array(len + 1 - str.length).join(pad) + str;
break;
case STR_PAD_BOTH:
var right = Math.ceil((padlen = len - str.length) / 2);
var left = padlen - right;
str = Array(left+1).join(pad) + str + Array(right+1).join(pad);
break;
default:
str = str + Array(len + 1 - str.length).join(pad);
break;
} // switch
}
return str;
}