假设我有以下字符串:abc/def
。如何检查字符串内部是否有斜线但边缘没有斜线?例如,不允许在末尾使用abcdef/
之类的斜杠或在该情况下使用/abcdef
之类的开头。
在这种情况下,String#includes
不起作用,因为它包括所有可能的位置。我该如何实现?
答案 0 :(得分:1)
您可以使用一个子字符串并检查包含。
const check = s => s.slice(1, -1).includes('/');
console.log(['abc/def', '/def', 'abc/'].map(check));
答案 1 :(得分:0)
您可以使用简单的正则表达式来检查字符串:
"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
答案 2 :(得分:0)
您可以使用正则表达式:
function test(input, search) {
return new RegExp(`^.+${search}.+$`).test(input);
}
console.log(test("abcde/f", "\/"));
console.log(test("abcdef/", "\/"));