这就是我想要做的。老实说,我甚至不确定从哪里开始。
var text1 = 'ThE foX iS brown',
text2 = 'the fox is brown the fox is brown THE FOX IS BROWN',
index = text2.toLowerCase().indexOf(text1.toLowerCase()),
output = 'do something with substring?';
alert(index);
“text2”应该改为:你的棕色狐狸是褐色的狐狸是棕色的
var text1 = 'ThE foX iS brown the FOX is BrO',
text2 = 'the fox is brown the fox is brown THE FOX IS BROWN',
index = text2.toLowerCase().indexOf(text1.toLowerCase()),
output = 'do something with substring?';
alert(index);
在这种情况下,“text2”应该更改为:那就是棕色FOX是BrOwn FOX IS BROWN
我想也许我应该首先尝试在“text2”中找到字符串“text1”的“第一次”出现,但它似乎不起作用?之后我想我可以使用substring
?或者甚至有更简单的方法来做到这一点?我不确定。任何帮助将非常感激。谢谢。
答案 0 :(得分:1)
您似乎只是尝试用文本1替换字符串的第一部分。
你可以试试这个。
int text1Size = text1.length;
output = text1 + text2.substring(text1Size);
答案 1 :(得分:1)
您要找的是用text1
替换text2
中第一次出现的子串text1
,忽略大小写。
您可以使用“i”gnore-case标记为其构建regular expression。
假设您不知道text1
的内容,则必须转义正则表达式解释的一些特殊字符。
获得正则表达式后,您可以使用replace。
以下是一个例子:
// Function to escape Regular Expressions special characters.
// From: http://stackoverflow.com/questions/3115150/how-to-escape-regular-expression-special-characters-using-javascript
RegExp.escape = function(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
};
var text1 = 'ThE foX iS brown';
var text2 = 'the fox is brown the fox is brown THE FOX IS BROWN';
// Create the Regular Expression with the "i"gnore-case flag
var re = new RegExp(RegExp.escape(text1), "i");
var output = text2.replace(re, text1);
// output -> ThE foX iS brown the fox is brown THE FOX IS BROWN