javascript怎么比较两个文本,并从中找出全部相同字符串,相同字符串长度最少是2,并且优先长度多的相同字符串,写出代码

时间: 2023-05-26 17:02:50 浏览: 67
可以使用正则表达式匹配字符串,然后遍历两个字符串中匹配到的所有相同字符串,从中筛选出长度大于等于2的字符串,并按照长度从大到小排序。具体代码如下: ```javascript function compareStrings(str1, str2) { // 匹配所有相同的字符串 const regex = new RegExp(`(?=(.{2,}))(${str2})`, "g"); const matches = str1.match(regex) || []; // 筛选出长度大于等于2的字符串 const filteredMatches = matches.filter(match => match.length >= 2); // 按照长度从大到小排序 const sortedMatches = filteredMatches.sort((a, b) => b.length - a.length); return sortedMatches; } // 示例 const str1 = "abcdefgababa"; const str2 = "abcaba"; const result = compareStrings(str1, str2); console.log(result); // 输出 ["ababa", "aba", "aba"] ```
相关问题

javascript怎么比较两个文本,并从中找出全部相同字符串,相同字符串最少长度为2,

可以使用双重循环来比较两个文本中的每一个字符串,然后将相同的字符串存储在一个数组中。代码如下: ``` function compareText(text1, text2) { let matchingStrings = []; for (let i = 0; i < text1.length; i++) { for (let j = 0; j < text2.length; j++) { if (text1.slice(i, i + 2) === text2.slice(j, j + 2) && text1.slice(i, i + 2).length >= 2) { matchingStrings.push(text1.slice(i, i + 2)); } } } return matchingStrings; } let str1 = "abcdefg"; let str2 = "abcdehfg"; console.log(compareText(str1, str2)); // ["ab", "fg"] ``` 在上面的例子中,我们比较了两个字符串"abcdefg"和"abcdehfg",并找出了它们中相同的字符串"ab"和"fg"。注意我们使用了slice方法来获取每个字符串的子字符串,并将它们与另一个字符串中的子字符串进行比较。同时,我们还添加了一个长度判断,确保我们只找到长度大于等于2的相同字符串。

javascript怎么比较两个文本,从中找出全部相同字符串,并且优先长度多的相同字符串,写出代码

可以使用双重循环来比较两个文本中的每一个子串,然后通过比较字符串长度的方法找到相同的字符串并将其存入一个数组中,并按照字符串长度从大到小排序,最终返回排好序的相同字符串数组。 代码示例: ```javascript function findSameStrings(str1, str2) { let sameStrings = []; for(let i=0; i<str1.length; i++) { for(let j=0; j<str2.length; j++) { let temp = ""; let k = 0; while(str1[i+k] == str2[j+k]) { temp += str1[i+k]; k++; if(i+k >= str1.length || j+k >= str2.length) break; } if(temp.length > 0) { sameStrings.push(temp); } } } sameStrings.sort(function(a, b) { return b.length - a.length; }); return sameStrings; } ``` 使用示例: ```javascript let str1 = "hello world"; let str2 = "world hello"; let result = findSameStrings(str1, str2); console.log(result); // output: ["hello", "world"] ```

相关推荐

最新推荐

recommend-type

javascript利用正则快速找出两个字符串的不同字符

//by 夏天以南 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
recommend-type

JavaScript中两个字符串的匹配

工作中遇到一个问题,两个字符串匹配,要求:每个字符串中最多含有一个*,?可以无限多个 *代表一个任意长度的字符串,而?则代表一个字符 要求可以提示出两个冲突 复制代码 代码如下:&lt;input type=”text” id=”...
recommend-type

JavaScript比较两个数组的内容是否相同(推荐)

主要介绍了JavaScript如何比较两个数组的内容是否相同的相关资料,需要的朋友可以参考下
recommend-type

javascript中字符串拼接详解

 实现这个操作的过程如下:首先创建一个能容纳10个字符的新字符串,然后在这个字符串中填充“Java”和“Script”,最后一步是销毁原来的字符串“Java”和“Script”,因为这两个字符串已经没用了。但是
recommend-type

javascript转换字符串为dom对象(字符串动态创建dom)

那么今天的目的就是教大家怎么去实现一个这样的方法用来把字符串直接转换为标准的dom对象
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。