- jQuery - 需要从包含子字符串匹配的搜索中确定完整单词

搜索包含在多个div中的文本,查找字符串中的子字符串的出现。

例子:搜索'1st',查找字符串(101st )中的匹配项,然后将整个字符串(101st )替换为另一个字符串(one hundred first)。

我已经写了一个函数,它可以处理替换单词的可能组合,

下面是我的代码:


 $("div.dirInstruction").each(function(){


if ($(this).text().indexOf("1st") >= 0) {


// found occurrence


alert ($(this).text()); // < ---- for visual debug - returns all text in div of match


var StringThatContainsMatch = ?????; <----- need whole word that contained match


var new_word = $(this).text().replace(StringThatContainsMatch,"one hundred first"); 


$(this).text(new_text); 


}


});



时间:

由于已经有了一个函数,可以使用.replace作为匹配数字的替换函数,并用适当的字符串替换它们:


function translateDigits(digits) {


 // Logic to turn, eg, 101 into"one hundred first"


 return 'one hundred first';


}



$("div.dirInstruction").each(function(){


 this.textContent = this.textContent.replace(


 /d+(?=stb)/g,


 translateDigits


 )


});



d 将匹配后面跟着st和一个单词边界的数字,然后将它们传递给translateDigits


$("div.dirInstruction").each(function() {


 if ($(this).text().indexOf("1st") >= 0) {


 var new_word = $(this).text().replace(/1st/g,"one hundred first");


 $(this).text(new_word);


 }


});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>



<div class="dirInstruction">101st</div>


<div class="dirInstruction">1000001st</div>


<div class="dirInstruction">1st</div>


<div class="dirInstruction">addasd1stbbb</div>


<div class="dirInstruction">1st1st1st</div>

用正则表达式替换。

...