js積累函式

我爱你的發表於2024-11-15
// 獲取指定範圍內的隨機數
function randomNum(maxNum, minNum, decimalNum){
// 獲取指定範圍內的隨機數, decimalNum指小數保留多少位
var max = 0,
min = 0;
minNum <= maxNum ? (min = minNum, max = maxNum) : (min = maxNum, max = minNum);
switch (arguments.length) {
case 1:
return Math.floor(Math.random() * (max + 1));
break;
case 2:
return Math.floor(Math.random() * (max - min + 1) + min);
break;
case 3:
return (Math.random() * (max - min) + min).toFixed(decimalNum);
break;
default:
return Math.random();
break;
}}

console.log(randomNum(1, 2,5));

// 漢字和Unicode編碼互轉

function isChinese(s){
return /[\u4e00-\u9fa5]/.test(s);
}

function ch2Unicdoe(str){
if(!str){
return;
}
var unicode = '';
for (var i = 0; i < str.length; i++) {
var temp = str.charAt(i);
if(isChinese(temp)){
unicode += '\\u' + temp.charCodeAt(0).toString(16);
}
else{
unicode += temp;
}
}
return unicode;
}
// var str = 'love中國你好';
var str = 'lovepython是一種\\中國lll';
var unicode = ch2Unicdoe(str) // love\u4e2d\u56fd\u4f60\u597d
console.log(unicode);


function unicode2Ch(str){
if(!str){
return;
}
// 控制迴圈躍遷
var len = 1;
var result = '';
// 注意,這裡迴圈變數的變化是i=i+len 了
for (var i = 0; i < str.length; i=i+len) {
len = 1;
var temp = str.charAt(i);
if(temp == '\\'){
// 找到形如 \u 的字元序列
if(str.charAt(i+1) == 'u'){
// 提取從i+2開始(包括)的 四個字元
var unicode = str.substr((i+2),4);
// 以16進製為基數解析unicode字串,得到一個10進位制的數字
result += String.fromCharCode(parseInt(unicode,16).toString(10));
// 提取這個unicode經過了5個字元, 去掉這5次迴圈
len = 6;
}
else{
result += temp;
}
}
else{
result += temp;
}
}
return result;
}

// var str2 = unicode2Ch("love\u4e2d\u56fd1234\u4f60\u597d")//love中國1234你好
var str2 = unicode2Ch(unicode)//love中國1234你好
console.log(str2);

相關文章