shfshanyue / Daily-Question

互联网大厂内推及大厂面经整理,并且每天一道面试题推送。每天五分钟,半年大厂中
https://q.shanyue.tech
4.92k stars 510 forks source link

【Q638】如何把字符串全部转化为小写格式 #656

Open shfshanyue opened 3 years ago

cyio commented 3 years ago
const convert = str => str.replace(/[A-Z]/g, l => l.toLowerCase())

// test
convert('aCd')
convert('aCd123')
shfshanyue commented 3 years ago

在 ES6+ 中,可直接使用原生 API String.prototype.toLowerCase() 实现

如果手写实现,如下所示

const lowerCase = str => {
  let result = ''
  for (let char of str) {
    const charAt = char.charCodeAt()
    if (charAt <= 'Z'.charCodeAt() && charAt >= 'A'.charCodeAt()) {
      char = String.fromCharCode(charAt + 32)
    }
    result += char
  }
  return result 
}

//=> 'hello'
lowerCase('HELLO')

//=> '山月'
lowerCase('山月')
shfshanyue commented 3 years ago
const convert = str => str.replace(/[A-Z]/g, l => l.toLowerCase())

// test
convert('aCd')
convert('aCd123')

如果不使用 API 如何做

Asarua commented 3 years ago

不使用API是指什么

const convert = str => str.replace(/[A-Z]/g, l => l.toLowerCase())

// test
convert('aCd')
convert('aCd123')

如果不使用 API 如何做

shfshanyue commented 3 years ago

@Asarua 就是 toLowerCase

Asarua commented 3 years ago

@Asarua 就是 toLowerCase

原来如此,那还好,我以为不让用字符串所有的api