JS中不使用toLowerCase()/toUpperCase()方法的情况下,讲字母转成小写/大写?

例如:将‘HELLO WORLD’转成‘hello world’。

方法一、根据字典项循环匹配(较笨)

let str = 'HELLO WORLD';

// 转小写
let dic = {
	'A': 'a',
	'B': 'b',
	'C': 'c',
	'D': 'd',
	'E': 'e',
	'F': 'f',
	'G': 'g',
	'H': 'h',
	'I': 'i',
	'J': 'j',
	'K': 'k',
	'L': 'l',
	'M': 'm',
	'N': 'n',
	'O': 'o',
	'P': 'p',
	'Q': 'q',
	'R': 'r',
	'S': 's',
	'T': 't',
	'U': 'u',
	'V': 'v',
	'W': 'w',
	'X': 'x',
	'Y': 'y',
	'Z': 'z'
}

// 循环遍历
let lowerStr = '';
for(let i = 0; i <= str.length; i++){
	let item = str[i];
	if (dic[item]){ // 字典中就匹配,不在就返回本身
		lowerStr += dic[item];
	} else {
		lowerStr += item;
	}
}
console.log(lowerStr); // 'hello world'

方法二:根据Unicode编码来找到大写字母对应的小写字母

let str = 'HELLO WORLD';

function handleLower (str = '') {
	let codeStart = 'A'.charCodeAt();
	let codeEnd = 'Z'.charCodeAt();
	let codeLowerStart = 'a'.charCodeAt();
	let minus = codeLowerStart - codeStart;
	if (str) {
		if (str.charCodeAt() < code || str.charCodeAt() > codeEnd) { // 处理非大写字母
			return str;
		}
		return String.fromCharCode(str.charCodeAt() + minus);
	}
	return '';
}

let lowerStr = '';
for(let i = 0; i <= str.length; i++){
	let item = str[i];
	lowerStr += handleLower(item);
}
console.log(lowerStr); // hello world
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值