如何在字符串中搜索子字符串并 return 该字符串
How do I search for a substring within a string and return that string
我正在尝试将以下逻辑添加到 GTM 中的以下自定义 Javascript 变量:
“查找字符串是否包含这个词,以及 return 那个词”
function() {
var el = {{Click Element}};
el = el.parentElement;
var classes = el.className;
return classes ;
}
在上面的代码中 classes 变量 returns 以下字符串:
'wp-block-button jungle-cta tiger-animal'
我正在尝试执行以下操作:如果字符串包含“tiger”,则 return“tiger-animal”,仅此。
我正在将此功能应用于同一着陆页上的不同 CTA。每个 CTA 都有一个老虎常量作为 class 名称的一部分。因此,一个 CTA 是“老虎-动物”,另一个是“老虎-某物”、“老虎-词”等。我正在寻找与“老虎-”之后的内容无关的逻辑。如果找到老虎,则解析包含老虎的单词和 return 它。
更新:
以下内容现在可以使用了!谢谢。
function() {
var el = {{Click Element}};
el = el.parentElement;
var classes = el.className;
var regex = /tiger-[a-z]*/g;
var found = classes.match(regex);
return found[0]
}
正在更新此处的代码以匹配您在评论中提到的内容。如果匹配,现在 return 是字符串,否则 return 是未定义的:
function checkIfTiger(input) {
const regex = /tiger-[a-z]*/g;
const found = input.match(regex)
return found !== null && found[0]
}
checkIfTiger("fsd adfj adkfj tiger-adsf dfadf")
// returns "tiger-asdf"
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
如何使用 .includes 属性。例如:
let a = 'wp-block-button jungle-cta tiger-animal'
function checkIfTiger() {
if(a.includes("tiger")) {
return "tiger-animal"
}
}
checkIfTiger()
实际上,这是一个代码较少的版本。它 return "tiger-animal" 如果 "tiger" 存在于你正在检查的任何内容中,否则 returns false:
let a = 'wp-block-button jungle-cta tiger-animal'
function checkIfTiger() {
return a.includes("tiger") && "tiger-animal"
}
checkIfTiger()
如果您希望对此函数进行的唯一重要更改是,如果您的变量 classes
包含子字符串 [=15=,它将 return 字符串 "tiger-animal"
],那么我推荐一个简单的 if/else statement that makes use of the .includes() 方法,如果您的字符串包含指定的子字符串,则 return 为 true
,如果不包含,则为 false
。例如:
function() {
var el = {{Click Element}};
el = el.parentElement;
var classes = el.className;
if (classes.includes("tiger")) {
return "tiger-animal";
} else {
return classes;
}
}
如果您不觉得它会影响可读性,ternary operator 使用更少的行:
function() {
var el = {{Click Element}};
el = el.parentElement;
var classes = el.className;
return (classes.includes("tiger") ? "tiger-animal" : classes)
}
这两个函数将 return classes
,或者,如果 classes
包含子字符串 "tiger"
,它将 return 字符串 "tiger-animal"
.
对于任何想知道如何检查子字符串的路人,这里有一个更简单的函数,它使用较少的问题原始上下文来演示这个原则:
function tigerChecker(string) {
let classes = string
if (classes.includes("tiger")) {
return "tiger-animal";
} else {
return classes;
}
}
我正在尝试将以下逻辑添加到 GTM 中的以下自定义 Javascript 变量: “查找字符串是否包含这个词,以及 return 那个词”
function() {
var el = {{Click Element}};
el = el.parentElement;
var classes = el.className;
return classes ;
}
在上面的代码中 classes 变量 returns 以下字符串:
'wp-block-button jungle-cta tiger-animal'
我正在尝试执行以下操作:如果字符串包含“tiger”,则 return“tiger-animal”,仅此。
我正在将此功能应用于同一着陆页上的不同 CTA。每个 CTA 都有一个老虎常量作为 class 名称的一部分。因此,一个 CTA 是“老虎-动物”,另一个是“老虎-某物”、“老虎-词”等。我正在寻找与“老虎-”之后的内容无关的逻辑。如果找到老虎,则解析包含老虎的单词和 return 它。
更新:
以下内容现在可以使用了!谢谢。
function() {
var el = {{Click Element}};
el = el.parentElement;
var classes = el.className;
var regex = /tiger-[a-z]*/g;
var found = classes.match(regex);
return found[0]
}
正在更新此处的代码以匹配您在评论中提到的内容。如果匹配,现在 return 是字符串,否则 return 是未定义的:
function checkIfTiger(input) {
const regex = /tiger-[a-z]*/g;
const found = input.match(regex)
return found !== null && found[0]
}
checkIfTiger("fsd adfj adkfj tiger-adsf dfadf")
// returns "tiger-asdf"
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
如何使用 .includes 属性。例如:
let a = 'wp-block-button jungle-cta tiger-animal'
function checkIfTiger() {
if(a.includes("tiger")) {
return "tiger-animal"
}
}
checkIfTiger()
实际上,这是一个代码较少的版本。它 return "tiger-animal" 如果 "tiger" 存在于你正在检查的任何内容中,否则 returns false:
let a = 'wp-block-button jungle-cta tiger-animal'
function checkIfTiger() {
return a.includes("tiger") && "tiger-animal"
}
checkIfTiger()
如果您希望对此函数进行的唯一重要更改是,如果您的变量 classes
包含子字符串 [=15=,它将 return 字符串 "tiger-animal"
],那么我推荐一个简单的 if/else statement that makes use of the .includes() 方法,如果您的字符串包含指定的子字符串,则 return 为 true
,如果不包含,则为 false
。例如:
function() {
var el = {{Click Element}};
el = el.parentElement;
var classes = el.className;
if (classes.includes("tiger")) {
return "tiger-animal";
} else {
return classes;
}
}
如果您不觉得它会影响可读性,ternary operator 使用更少的行:
function() {
var el = {{Click Element}};
el = el.parentElement;
var classes = el.className;
return (classes.includes("tiger") ? "tiger-animal" : classes)
}
这两个函数将 return classes
,或者,如果 classes
包含子字符串 "tiger"
,它将 return 字符串 "tiger-animal"
.
对于任何想知道如何检查子字符串的路人,这里有一个更简单的函数,它使用较少的问题原始上下文来演示这个原则:
function tigerChecker(string) {
let classes = string
if (classes.includes("tiger")) {
return "tiger-animal";
} else {
return classes;
}
}