检查,如果单词具有相同的结尾并从JavaScript开始

时间:2018-05-22 05:40:12

标签: javascript

我正在搜索如何检查单词是否具有相同的结尾并开始。有我的代码:

JavaScript的:

function Check() {
  var value = document.getElementById("input").value;

  if (value == startsWith(endsWith()) && value == endsWith(startsWith())) {
    return alert("Yes");

  } else {
    return alert("No");
  }
}
<input id="input" style="margin:20px;" type="text"><br>
<button id="button" onclick="Check();">Check</button>
<p id="demo" style="color:white;">Answer</p>

7 个答案:

答案 0 :(得分:2)

只需检查字符串的第一个和最后一个字符:

if(value[0] == value[value.length-1]) 
{
   alert('Yes');
}
else
{ 
   alert('No');
}

答案 1 :(得分:1)

尝试以下功能。 我正在比较输入字符串的第一个字符和最后一个字符。

function Check() {
  var value = document.getElementById("input").value;

  if (value.charAt(0) === value.charAt(value.length - 1)) {
    return alert("Yes");

  } else {
    return alert("No");
  }
}

答案 2 :(得分:1)

使用str.length - 1获取字符串最后一个字符的索引。

function check(str) {
  if (str[0] === str[str.length - 1]) {
    alert('yes')
  } else {
    alert('no');
  }
}

check('test');
check('tests');

要检查第一个/最后n个字符,您可以执行此操作。

function checkMore(str, amount) {
  if (str[0] !== str[str.length - 1]) {
    alert('no');
    return;
  } else if (amount !== 1) {
    return checkMore(str.slice(1, str.length - 1), amount - 1);
  }
  alert('yes');
}

checkMore('stests', 1);
checkMore('stests', 2);
checkMore('stests', 3);

检查整个字符串(基本上检查字符串是否是回文)。

function checkPalindrome(str) {
  if (str.length === 0 || str.length === 1) {
    alert('yes');
    return;
  }
  if (str[0] !== str[str.length - 1]) {
    alert('no');
    return;
  }
  checkPalindrome(str.slice(1, str.length - 1));
}

checkPalindrome('car');
checkPalindrome('carac');
checkPalindrome('carrac');

答案 3 :(得分:1)

您可以使用match()indexOf()。两者都有效,但都搜索整个字符串。在相关位置提取子字符串并将其与您期望的子字符串进行比较会更有效:

function Check ( word ) {
  return word.charAt(0) == word.charAt( word.length - 1 )
}
<button tye="button" onclick="alert( Check('Hello') )">Check 'Hello'</button>
<button tye="button" onclick="alert( Check('HelloH') )">Check 'HelloH'</button>

当然,您也可以使用正则表达式,使用智能正则表达式引擎,它也应该是高效的(并且您的代码更简洁):

function Check ( word ) {
  return /^(.).*\1$|^.$/.test( word )
}
<button tye="button" onclick="alert( Check('Hello') )">Check 'Hello'</button>
<button tye="button" onclick="alert( Check('WoW') )">Check 'WoW'</button>

答案 4 :(得分:0)

&#13;
&#13;
var value = "wow"
return (value[0] === value[value.length - 1] ? true : false)
&#13;
&#13;
&#13;

第0个索引将包含起始字符和value.length - 1将包含结束字符。如果它们相等,则返回true和false。

答案 5 :(得分:0)

您可以使用.split('' )按空格分割字符串,然后分成单词。它将其拆分为数组,因此您可以将索引[0]与索引[length-1]

进行比较

例如

    function Check(string) {
        let arr = string.split(' ');
        return arr[0] == arr[arr.length-1];
    }

答案 6 :(得分:0)

使用正则表达式:

if (/^(.).*\1$|^.$/.test(value))
    // first and last are same letter