删除文本字符串的特定部分
remove a certain part of a text string
我正在尝试删除字符串的某些部分以隔离句子的值。
我想将喜欢的东西存储在名为 thingLoved
的 var 中。所以当你输入“我爱猫”时,你可以得到 console.log(thingLoved)
= cats
为此,我试图从第一句中删除 I love
,这样它就只剩下“苹果”了。
在那个例子中,我可以删除 love
但不能删除 i love
(因为我猜有一个 space),我不知道该怎么做。
感谢您的帮助。
function individuaLetters(e){
e.each(function(){
var letters = $(this).html().replace(/^[a-zA-Z\u00C0-\u017F]+,\s[a-zA-Z\u00C0-\u017F]+$/).toLowerCase();
console.log(letters);
if (letters.includes("i love")) {
var thingLoved = $(this).html().replace("i love","")
console.log(thingLoved);
};
})
}
var text = $('div').find('.indiv');
individuaLetters(text);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<span class="indiv">I love apples</span>
</div>
如果您需要更多匹配项和不区分大小写的修饰符 (/i),请使用带有交流发电机 (|) 的正则表达式:
function individuaLetters(e){
e.each(function(){
var letters = $(this).html().replace(/^[a-zA-Z\u00C0-\u017F]+,\s[a-zA-Z\u00C0-\u017F]+$/).toLowerCase();
console.log(letters);
if (letters.includes("i love")) {
var reg = /i love/i
var thingLoved = $(this).html().replace(reg,"")
console.log(thingLoved);
};
})
}
var text = $('div').find('.indiv');
individuaLetters(text);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<span class="indiv">I love apples</span>
</div>
根据@Vishal Jain 的回答,正则表达式可能是最好的方法,但这是对您最初尝试做的事情的基本修复:
function individuaLetters(e){
e.each(function(){
var letters = $(this).html().replace(/^[a-zA-Z\u00C0-\u017F]+,\s[a-zA-Z\u00C0-\u017F]+$/).toLowerCase();
console.log(letters);
if (letters.includes("i love")) {
var thingLoved = letters.replace("i love","") .trim();
console.log(thingLoved);
}
})
}
var text = $('div').find('.indiv');
individuaLetters(text);
基本上,您试图替换原始 html 字符串中的“i love”,实际上它仍然包含“I love”(即您需要调用 includes()
letters
变量)。
我正在尝试删除字符串的某些部分以隔离句子的值。
我想将喜欢的东西存储在名为 thingLoved
的 var 中。所以当你输入“我爱猫”时,你可以得到 console.log(thingLoved)
= cats
为此,我试图从第一句中删除 I love
,这样它就只剩下“苹果”了。
在那个例子中,我可以删除 love
但不能删除 i love
(因为我猜有一个 space),我不知道该怎么做。
感谢您的帮助。
function individuaLetters(e){
e.each(function(){
var letters = $(this).html().replace(/^[a-zA-Z\u00C0-\u017F]+,\s[a-zA-Z\u00C0-\u017F]+$/).toLowerCase();
console.log(letters);
if (letters.includes("i love")) {
var thingLoved = $(this).html().replace("i love","")
console.log(thingLoved);
};
})
}
var text = $('div').find('.indiv');
individuaLetters(text);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<span class="indiv">I love apples</span>
</div>
如果您需要更多匹配项和不区分大小写的修饰符 (/i),请使用带有交流发电机 (|) 的正则表达式:
function individuaLetters(e){
e.each(function(){
var letters = $(this).html().replace(/^[a-zA-Z\u00C0-\u017F]+,\s[a-zA-Z\u00C0-\u017F]+$/).toLowerCase();
console.log(letters);
if (letters.includes("i love")) {
var reg = /i love/i
var thingLoved = $(this).html().replace(reg,"")
console.log(thingLoved);
};
})
}
var text = $('div').find('.indiv');
individuaLetters(text);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<span class="indiv">I love apples</span>
</div>
根据@Vishal Jain 的回答,正则表达式可能是最好的方法,但这是对您最初尝试做的事情的基本修复:
function individuaLetters(e){
e.each(function(){
var letters = $(this).html().replace(/^[a-zA-Z\u00C0-\u017F]+,\s[a-zA-Z\u00C0-\u017F]+$/).toLowerCase();
console.log(letters);
if (letters.includes("i love")) {
var thingLoved = letters.replace("i love","") .trim();
console.log(thingLoved);
}
})
}
var text = $('div').find('.indiv');
individuaLetters(text);
基本上,您试图替换原始 html 字符串中的“i love”,实际上它仍然包含“I love”(即您需要调用 includes()
letters
变量)。