js replace替换一段文本中所有的相同字符

 在html<textarea>标签中回车换行的代码是: \n,html编辑器的回车换行是:\r\n或是\n。

下图是存入后台的<textarea>的文本,需要在页面上显示出来,肯定也是需要把换行体现出来的,就需要把\n全部换成<br \>。如下图:

全部替换 ↓↓↓

content = content.replace(/\n/g, '<br />');

/表达式/g是正则,意思是匹配符合表达式的内容,如果是匹配带有斜杠的,需要把斜杠转义一下,content.replace(/\//g, <br />);意思是:把所有斜杠替换成br标签,\是转义的。

 

转载于:https://www.cnblogs.com/laq627/p/7227412.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个比较复杂的问题,需要使用到很多字符串处理和数组操作的方法。下面是一个可能的解决方案: ```javascript function replaceText(text1, text2) { // 将文本按空格分割成单词数组 var words1 = text1.split(' '); var words2 = text2.split(' '); // 将单词数组按字符长度从大到小排序 words1.sort(function(a, b) { return b.length - a.length; }); words2.sort(function(a, b) { return b.length - a.length; }); // 找出两个单词数组相同的单词,并按长度从大到小排序 var commonWords = []; for (var i = 0; i < words1.length; i++) { for (var j = 0; j < words2.length; j++) { if (words1[i] === words2[j]) { commonWords.push(words1[i]); } } } commonWords.sort(function(a, b) { return b.length - a.length; }); // 依次替换文本相同单词,直到没有相同的单词为止 var replacedText = text1 + ' ' + text2; // 合并文本 var hasCommonWord = true; while (hasCommonWord) { hasCommonWord = false; for (var i = 0; i < commonWords.length; i++) { var regex = new RegExp('\\b' + commonWords[i] + '\\b', 'g'); // 创建正则表达式,匹配整个单词 if (regex.test(replacedText)) { hasCommonWord = true; replacedText = replacedText.replace(regex, commonWords[i].toUpperCase()); // 将单词替换成大写形式 } } } return replacedText; } // 使用示例 var text1 = 'hello world javascript'; var text2 = 'world is great and javascript is awesome'; var result = replaceText(text1, text2); console.log(result); ``` 这个函数的基本思路是先将两个文本按单词长度从大到小排序,然后找出相同的单词,并按长度从大到小排序。接着,依次替换文本相同单词,直到没有相同的单词为止。在替换过程,我们将单词替换成大写形式,以区分替换前后的单词。最后返回替换完成后的文本。注意,这个函数只是一个示例,实际使用时还需要考虑各种边界情况和错误处理。 ### 回答2: 以下是符合要求的 JavaScript 代码: ```javascript function findAndReplaceText(text1, text2) { let commonStrings = []; // 找出两个文本相同字符串 for (let i = 0; i < text1.length; i++) { for (let j = 0; j < text2.length; j++) { let commonString = ""; let m = i; let n = j; while (text1[m] === text2[n] && m < text1.length && n < text2.length) { commonString += text1[m]; m++; n++; } // 如果找到非空共同字符串,则添加到数组 if (commonString.length > 0) { commonStrings.push(commonString); } } } // 按字符串长度从大到小排序共同字符串数组 commonStrings.sort((a, b) => b.length - a.length); // 替换文本的共同字符串 for (let i = 0; i < commonStrings.length; i++) { text1 = text1.replace(commonStrings[i], "TEMP" + i); text2 = text2.replace(commonStrings[i], "TEMP" + i); } // 按字符串长度从大到小替换文本 commonStrings.forEach((commonString, index) => { text1 = text1.replace("TEMP" + index, commonString); text2 = text2.replace("TEMP" + index, commonString); }); // 返回替换后的文本 return [text1, text2]; } let text1 = "JavaScript是一种脚本语言,广泛用于网页开发。"; let text2 = "JavaScript是一种强大的语言,提供了丰富的功能。"; let [newText1, newText2] = findAndReplaceText(text1, text2); console.log(newText1); console.log(newText2); ``` 这段代码首先找出两个文本相同字符串,然后按字符串的长度从大到小对这些共同字符串进行排序,接着使用一个占位符替换文本的共同字符串,以便在字符串长度替换时不会产生冲突。最后将占位符替换回共同字符串,得到最终的替换结果。在上面的例子,text1 和 text2 经过替换后的结果分别为:"JavaScript是一种TEMP0,广泛用于网页开发。" 和 "JavaScript是一种TEMP0,提供了丰富的功能。" ### 回答3: 在JavaScript,我们可以使用以下代码来实现从两个文本字符长度从大到小找出相同字符串,并按字符串长度从大到小替换文本,直到没有相同字符。 首先,我们需要定义两个文本字符串: ```javascript let text1 = "这是文本1"; let text2 = "这是文本2"; ``` 然后,我们需要获取两个文本的所有相同字符串,并按字符串长度从大到小排序: ```javascript let sameStrings = []; for (let i = 0; i < text1.length; i++) { for (let j = 0; j < text2.length; j++) { let substring = text1.substring(i).indexOf(text2.substring(j)); if (substring !== -1 && !sameStrings.includes(text2.substring(j))) { sameStrings.push(text2.substring(j)); } } } sameStrings.sort((a, b) => b.length - a.length); ``` 接下来,我们根据找到的相同字符串长度对原文本进行替换: ```javascript for (let i = 0; i < sameStrings.length; i++) { text1 = text1.replace(new RegExp(sameStrings[i], 'g'), sameStrings[i].toUpperCase()); text2 = text2.replace(new RegExp(sameStrings[i], 'g'), sameStrings[i].toUpperCase()); } ``` 最后,我们输出替换后的文本: ```javascript console.log(`替换后的文本1:${text1}`); console.log(`替换后的文本2:${text2}`); ``` 以上代码根据两个文本字符串的字符长度从大到小找出相同字符串,并按字符串长度从大到小替换文本,直到没有相同字符

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值