如何用JavaScript检测单词首尾字符是否相同?附代码示例
检测单词首尾字符是否相同的正确实现
嘿,我看你在尝试实现一个检测输入文本首尾字符是否相同的功能,咱们先拆解下你现有代码里的问题,再给出可行的解决方案~
你的代码里的核心问题
你写的startsWith(endsWith())这种写法是不对的:
startsWith()和endsWith()是字符串的实例方法,必须通过具体的字符串来调用(比如value.startsWith(...))- 这两个方法需要传入要检测的字符/字符串作为参数,而不是相互嵌套调用
修正后的实现方案
我们只需要获取输入字符串的第一个字符和最后一个字符,直接比较它们是否相等就可以了。这里还可以做一些边界处理(比如空输入的情况),让功能更健壮。
完整代码示例
<input id="input" style="margin:20px;" type="text"><br> <button id="button" onclick="Check();">Check</button> <p id="demo" style="color:black;">Answer</p>
function Check() { // 获取输入框的值,并去除前后空格 let value = document.getElementById("input").value.trim(); // 处理空输入的情况 if (value.length === 0) { alert("请输入内容哦!"); document.getElementById("demo").textContent = "Answer: 请输入内容"; return; } // 获取第一个字符和最后一个字符 const firstChar = value[0]; const lastChar = value[value.length - 1]; // 比较并给出反馈 if (firstChar === lastChar) { alert("Yes"); document.getElementById("demo").textContent = "Answer: Yes"; } else { alert("No"); document.getElementById("demo").textContent = "Answer: No"; } }
补充说明
除了直接通过索引获取字符,你也可以用startsWith和endsWith来实现,写法会更直观:
// 替代字符索引比较的写法 if (value.startsWith(value.slice(-1))) { // 首尾相同的逻辑 }
value.slice(-1)会获取字符串的最后一个字符,然后用startsWith判断开头是否和这个字符一致,效果和直接比较索引是一样的。
内容的提问来源于stack exchange,提问作者user9817230
相关产品推荐
相关产品推荐

