Javascript 返回两个字符串中匹配字母的Js函数

Javascript 返回两个字符串中匹配字母的Js函数,javascript,Javascript,函数,该函数返回用户通过提交的两个字符串中的第一个字母 输入类型为文本,字符串用逗号分隔。例如:aaaaa,bbb a-->匹配的字母为“a”,因为在两个字符串中都存在 对不起,有些意大利名字,但我用意大利语编码 我不确定如何继续,我有一个for来遍历两个字符串,但我不确定它是否正确 函数Ripetizione(){ var rip=document.getElementById(“字符串”).value; 如果(rip.indexOf(“,”)=-1){//检查逗号是否不存在 警惕(“非塞纳

函数,该函数返回用户通过提交的两个字符串中的第一个字母 输入类型为文本,字符串用逗号分隔。例如:aaaaa,bbb a-->匹配的字母为“a”,因为在两个字符串中都存在 对不起,有些意大利名字,但我用意大利语编码

我不确定如何继续,我有一个for来遍历两个字符串,但我不确定它是否正确

函数Ripetizione(){
var rip=document.getElementById(“字符串”).value;
如果(rip.indexOf(“,”)=-1){//检查逗号是否不存在
警惕(“非塞纳苏纳维戈拉”);
返回;
}
var stringa1=rip.substr(0,rip.indexOf(“,”);//这是逗号前的string1
var stringa2=rip.substr(rip.indexOf(“,”)+1,rip.length-(stringa1.length+1));//这是逗号后的第二个字符串

对于(i=0;i您不需要循环第二个字符串。。只需检查元素的索引=>0,同时循环第一个字符串部分的每个元素。并返回值。

函数Ripetizione(){
function Ripetizione() { 
    var rip=document.getElementById("string").value;
    if (rip.indexOf(",")==-1){
        alert("Non c'è nessuna virgola");
        return;
    }

    var stringa1=rip.substr(0,rip.indexOf(","));
    var stringa2=rip.substr(rip.indexOf(",")+1,rip.length-(stringa1.length+1));

    return search(stringa1, stringa2);
}

function search(a, b){
    for(var i=0; i<a.length;i++){
        for(var j=0;j<b.length;j++){
            if(a[i] == b[j]){
                return a[i];
            }
        }
    }
}
var rip=document.getElementById(“字符串”).value; 如果(rip.indexOf(“,”)==-1){ 警惕(“非塞纳苏纳维戈拉”); 返回; } var stringa1=rip.substr(0,rip.indexOf(“,”); var stringa2=rip.substr(rip.indexOf(“,”)+1,rip.length-(stringa1.length+1)); 返回搜索(stringa1、stringa2); } 功能搜索(a、b){ 对于(var i=0;i我们可以使用并使用检查匹配字符的存在

其思想是使用
reduce
函数将字符串转换为字符串数组,然后对匹配的字符进行匹配和累加

//将匹配的字符作为数组返回
函数Ripetizione(rip){
//让rip=document.getElementById(“字符串”).value;
设strs=rip.split(“,”);
如果(strs.length!==2){//检查逗号是否不存在
警惕(“非塞纳苏纳维戈拉”);
返回;
}
//将字符串转换为数组以使用reduce
设strOne=Array.from(strs[0]),strTwo=strs[1];
返回行程减少((acc,alpha)=>{
return!acc.includes(alpha)和&strTwo.includes(alpha)【alpha,…acc】:acc;
},[]).slice(0,1).toString();
}
控制台日志(Ripetizione(“aaaaaa b,bbbbb a”);
控制台日志(Ripetizione(“aaaaaa,bbbbb a”);
控制台日志(Ripetizione(“acccaaa,bbb a”);
控制台日志(Ripetizione(“acccaaa,bbcba”);
log(Ripetizione(“dddddd,bbbbb a”);//返回空字符串
console.log(Ripetizione(“ab,ba”);
函数Ripetizione(){
var rip=document.getElementById(“字符串”).value;
如果(rip.indexOf(“,”)=-1){//检查逗号是否不存在
警惕(“非塞纳苏纳维戈拉”);
返回;
}
var stringa1=rip.substr(0,rip.indexOf(“,”);//这是逗号前的string1
var stringa2=rip.substr(rip.indexOf(“,”)+1,rip.length-(stringa1.length+1));//这是逗号后的第二个字符串

如果(stringa1.length以下演示将更改事件绑定到输入。当用户在输入中输入文本,然后在输入之外单击时,将调用该函数。该函数使用
split()
filter()
并在输出中显示结果。如果没有匹配项,该函数还将删除所有空格和报告

演示 详细信息将在演示中进行注释

var str=document.getElementById(“字符串”);
//这是一个事件处理程序
函数ripZ(e){
var result=document.getElementById('result');
var rip=该值;
如果(rip.indexOf(“,”)=-1){
result.value=“用逗号分隔两个字符串(无空格)。”;
返回;
}
//如果有空格,请将其删除
var rip=rip.replace(/\s/g');
//在逗号处拆分字符串,形成两个字符串的数组
var数组=rip.split(',');
/*
把每一根绳子在每个字母处分开。
现在有两个字母数组
*/
var first=数组[0]。拆分(“”);
var second=数组[1]。拆分(“”);
/*
使用两个for…of循环遍历两个数组
*/
var match=first.filter(函数(f,i){
返回第二个。indexOf(f)!=-1;
});
//显示结果
如果(匹配){
result.innerHTML=`
字母“${match[0]}”是两个字符串之间的第一个匹配项;
}否则{
result.value=“没有匹配项。”
}
返回;
}
/* 
这是注册到输入的OneEvent属性
如果用户在输入中键入,则在输入之外单击
调用事件处理程序ripZ()。
*/
str.onchange=ripZ;
GO

总是喜欢函数式编程而不是命令式编程。使用

函数getCommonLetter(str){ 常量[stringA,stringB]=str.split(','); 返回Array.from(stringB.find)(val=>stringA.includes(val)); } log(getCommonLetter('ab,ba')) log(getCommonLetter('ads,bsd')) console.log(getCommonLetter('aaa,bbc'))
如果输入是“ab,ba”,您会说它应该返回b,所以代码必须在我的打开中位于上方:

function Ripetizione() { 
  //  var rip=document.getElementById("string").value;
  //  if (rip.indexOf(",")==-1){
  //      alert("Non c'è nessuna virgola");
  //      return;
  //  }

  //  var stringa1=rip.substr(0,rip.indexOf(","));
  //  var stringa2=rip.substr(rip.indexOf(",")+1,rip.length-(stringa1.length+1));
var stringa1="ab";
var stringa2="ba";

for(var i=0; i<stringa2.length;i++){
    for(var j=0;j<stringa1.length;j++){
        if(stringa2.charAt(i) === stringa1.charAt(j)){
            console.log(stringa2.charAt(i));
            return;
        }
    }
}    
函数Ripetizione(){
//var rip=document.getElementById(“字符串”).value;
//如果(rip.indexOf(“,”)==-1){
//警惕(“非塞纳苏纳维戈拉”);
//返回;
//  }
//var stringa1=rip.substr(0,rip.indexOf(“,”);
//var stringa2=rip.substr(rip.indexOf(“,”)+1,rip.length-(stringa1.length+1));
var stringa1=“ab”;
var stringa2=“ba”;

对于(var i=0;iIf)而言,如果输入为“ab,ba”,那么输出应该是什么?“a”或“b”?因为第二个字符串中的“b”出现在第一个字符串中position@Rogi在我的回答中,当没有匹配时,我返回一个空白字符串。是的,它工作正常,很高兴看到我的想法没有错,毕竟谢谢你的帮助