假设我有以下字符串:abc/def
。如何检查字符串内部是否有斜线但边缘没有斜线?例如,不允许在末尾使用abcdef/
之类的斜杠或在该情况下使用/abcdef
之类的开头。
在这种情况下,String#includes
不起作用,因为它包括所有可能的位置。我该如何实现?
假设我有以下字符串:abc/def
。如何检查字符串内部是否有斜线但边缘没有斜线?例如,不允许在末尾使用abcdef/
之类的斜杠或在该情况下使用/abcdef
之类的开头。
在这种情况下,String#includes
不起作用,因为它包括所有可能的位置。我该如何实现?
您可以使用一个子字符串并检查包含。
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/","\/"));