如何检查一个字符串是否在另一个字符串内(但不在边缘)?

假设我有以下字符串:abc/def。如何检查字符串内部是否有斜线但边缘没有斜线?例如,不允许在末尾使用abcdef/之类的斜杠或在该情况下使用/abcdef之类的开头。

在这种情况下,String#includes不起作用,因为它包括所有可能的位置。我该如何实现?

liuxi5437 回答:如何检查一个字符串是否在另一个字符串内(但不在边缘)?

您可以使用一个子字符串并检查包含。

const check = s => s.slice(1,-1).includes('/');

console.log(['abc/def','/def','abc/'].map(check));

,

您可以使用简单的正则表达式来检查字符串:

"abc/def".test(/.\/./) // true
"/abcdef".test(/.\/./) // false
"abcdef/".test(/.\/./) // false

或者,您可以获取/的索引并将其与字符串的长度进行比较。

const str = "abc/def"

const i = str.indexOf("/")
i > 0 && i < str.length - 1 // true

您也可以使用inside-string

const insideString = require("inside-string")
insideString("abc/def","/") // true
,

您可以使用正则表达式:

function test(input,search) {
  return new RegExp(`^.+${search}.+$`).test(input);
}

console.log(test("abcde/f","\/"));
console.log(test("abcdef/","\/"));

本文链接:https://www.f2er.com/3153609.html

大家都在问