javascript 如果在字符串中找到单词,则保存单词

javascript save word if found in string

我正在学习 Javascript 并且有一个快速的问题。我想在字符串中搜索特定的单词或短语。如果 word/phrase 存在于字符串中。我想把它保存到一个变量中以备后用。

目前我的代码如下:

var str = "This is a test sentence";
var hasTest = str.includes("test");

if(hasTest == true)
{
    //save the word that was searched
} 

Javascript 变量一般用来存储你以后要重用的值。当你搜索“test”时,你已经知道匹配的字符串将是“test”,所以你可以设置const foundString = "test",但它没有多大用处。

您还可以在搜索字符串之前保存变量,这通常是个好习惯,以防您需要更改搜索字符串:

const str = "This is a test sentence";
const searchText = "test";
const hasTest = str.includes(searchText);

if (hasTest)
{
    // The found word, "test", is in the searchTest variable
} 

如果您搜索不同的词,例如“test”和“foo”,您很可能需要实现这样的代码逻辑。然后,您可以使用正则表达式 (Regular Expression) 来匹配以下两个词中的任何一个:

const searchExpression = new RegExp(/(test|foo)/);

const testString1 = "This is a test";
const stringMatch1 = testString1.match(searchExpression));
if (stringMatch1) {
  console.log(stringMatch1[0]); // > test
}

const testString2 = "This is a foo";
const stringMatch2 = testString2.match(searchExpression));
if (stringMatch2) {
  console.log(stringMatch2[0]); // > foo
}

const testString3 = "This is a bar";
const stringMatch3 = testString3.match(searchExpression)); // = null
if (stringMatch3) { // null evaluates to false
  console.log(stringMatch3[0]); // is not run
}

此外,请注意我一直在使用 const 来声明我的常量变量(并使用 let 来声明其他变量)。这通常被认为是最佳实践(有关差异的解释,请参阅 this link)。

最后的旁注:str.includes returns 一个布尔值,可以在 if 语句中直接求值:hasTest == true 给出与 hasTest.[=20 相同的结果=]