我有两个问题
1) 如何检查两个随机字符串是否具有相同的字符 就像我一样
var str1 = "ansar@#//1";
var str2 = "@#//sanra1";
应该返回true
2)如果没有相同的字符,那么第二个字符串中不存在哪些字符
var str1 = "ansar@#//123";
var str2 = "@#//sanra";
应返回 123
我知道我可以通过以下方式得到第一个问题的答案
str1.length===str2.length && str1.split("").sort().join() == str2.split("").sort().join();
但不确定如何获取与第二个字符串不匹配的字符
最佳答案
考虑这些实现:
1)
var str1 = "ansar@#//1";
var str2 = "@#//sanra1";
function first(str1, str2) {
return Array.prototype.every.call(str1, function(c) {
return str2.indexOf(c) > -1;
}, this);
}
console.log(first(str1, str2));
var str1 = "ansar@#//123";
var str2 = "@#//sanra";
function second() {
return Array.prototype.filter.call(str1, function(c) {
return str2.indexOf(c) === -1;
}, this).join('');
}
console.log(second(str1, str2));
<小时/>
更新用于检查字符串是否包含可以使用 ES6 Set 的相同字符:
const checkIfStringsContainSameCharacters = (string1, string2) => {
return new Set(string1).size === new Set(string1 + string2).size;
}
关于javascript - 如何检查两个字符串是否具有相同的字符(包括特殊字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37049306/