JavaScript:如何获取prompt输入姓名的首尾字符?
获取字符串首尾字符的正确方法
你之前用indexOf(0)和lastIndexOf(-1)的思路完全错了——这两个方法是用来查找指定字符在字符串中的位置,不是直接提取对应位置的字符,所以传数字0、-1根本找不到目标,只会返回-1。
首字符的几种实现方式
你已经用slice(0,1)解决了首字符问题,除此之外还有两种常用写法:
- 使用
charAt()方法:name.charAt(0),如果字符串为空会返回空字符串,不会报错 - 直接通过下标访问:
name[0],如果字符串为空会返回undefined
示例代码:
const name = prompt('请输入你的姓名'); // 获取首字符 document.body.innerHTML += `你的姓名首字母是:${name.slice(0, 1)}<br />`; document.body.innerHTML += `你的姓名首字母是:${name.charAt(0)}<br />`; document.body.innerHTML += `你的姓名首字母是:${name[0]}<br />`;
最后一个字符的实现方法
方法1:用slice()(最简洁)
slice()支持负数索引,slice(-1)会直接截取字符串的最后一个字符:
document.body.innerHTML += `你的姓名尾字母是:${name.slice(-1)}<br />`;
方法2:用charAt()
先通过name.length获取字符串总长度,最后一个字符的下标是长度-1:
document.body.innerHTML += `你的姓名尾字母是:${name.charAt(name.length - 1)}<br />`;
方法3:直接下标访问
同样利用长度计算下标:
document.body.innerHTML += `你的姓名尾字母是:${name[name.length - 1]}<br />`;
额外提示
如果用户可能输入空字符串,建议先做有效性判断,避免出现异常结果:
const name = prompt('请输入你的姓名'); if (name) { // 执行首尾字符获取逻辑 } else { alert('请输入有效的姓名'); }
内容的提问来源于stack exchange,提问作者Kazbonfim
相关产品推荐
相关产品推荐

