[英]javascript check if string has one of set of chars
我正在實施密碼復雜性檢查,其中一項要求是密碼至少包含一組字符中的一個。
我將如何為此編寫高效的函數,即
function hasOneOfChars(s, chars) {
// assuming both s and chars are strings,
// return true iff s has at least one char from chars
}
謝謝!
代替使用上述功能,嘗試將其與正則表達式模式一起使用。
如果要使用以下模式的字符集,而且{4,}至少包含字符,則可以根據需要進行更改
[a-zA-Z0-9]{4,}
謝謝。
根據要求接收2個字符串參數。 您可以嘗試以下代碼。
function hasOneOfChars(s, chars) { for (let char of chars.split("")) if (s.indexOf(char) > -1) { return true; } return false; } console.log(hasOneOfChars("abcd", "abcasjkdf"));
您可以對兩個字符串進行排序,然后執行以下操作:
var s = "ytreza".split("").sort().join("");
var chars = "ytrewq".split("").sort().join("");
hasOneOfChars(s, chars); // true
function hasOneOfChars (s, chars) {
var a, b, i, n;
if (s < chars) a = s, b = chars;
else a = chars, b = s;
i = 0, n = a.length;
while (i < n && a[i] !== b[0]) i++;
return i < n;
}
使用排序的字符串,您不必再遍歷兩個字符串:
a = "azerty"
b = "qwerty"
n = a.length // 6
i = 0, a[i] === b[0] ? false
i = 1, a[i] === b[0] ? false
i = 2, a[i] === b[0] ? true
return i < n // true
(功勞歸於SomePerformance)
// assuming both s and chars are strings, return true iff s has at least one char from chars function hasOneOfChars(s, chars) { return [...chars].some(char => s.includes(char)); } console.log(hasOneOfChars('aaabbb', 'ax')); console.log(hasOneOfChars('aaabbb', 'xy'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.