【发布时间】:2017-04-16 04:58:39
【问题描述】:
我有一个小程序,它正在根据数组元素检查字符串中的字符序列,如果在数组 terms[] 中找到序列,则执行某些操作。但是,这仅适用于我使用以下机制的数组中的第一个实例匹配。我怎样才能使这种情况发生多次?
示例:terms = ['hello', 'world', 'this', 'is', 'me']
给程序的字符串是:hello here is me
要求程序将在字符串中找到的与数组中的任何单词匹配的单词分别替换为单词 red 和 green,但是程序在找到的第一个匹配项处停止,即当前的结果程序化系统是:
'red here is me'
代替
'red here green me'
如何更改以下功能以提供第二个结果?
for (var i = 0; i < terms.length && !match; i++) {
if (string.indexOf(terms[i]) > -1) {
match = true;
var newString = '';
wrapper.css("background", "#a1e4ff");
var matchString = string.substring(string.indexOf(terms[i]), (string.indexOf(terms[i]) + terms[i].length));
我不认为你理解我,我不关心 css,我关心子字符串替换。
这是我当前的代码
function check(string) {
var terms = ['one', 'two'];
var match = false;
for(var i=0;i<terms.length;i++) {
if(string.indexOf(terms[i]) > -1) {
match = true;
var newString='';
var matchString = string.substring(string.indexOf(terms[i]), (string.indexOf(terms[i])+terms[i].length));
switch(matchString) {
case 'one':
newString = string.replace(matchString, "three");
break;
case 'two':
newString = string.replace(matchString, "four");
default:
alert('no matches');
}
$("ul").append("<li>" + newString + "</li>");
}
}
}
check('this is a one example string of two');
目前我的程序结果如下: 这是 two
的 three 示例字符串我想修复我的程序以实现以下结果: 这是 four
的 three 示例字符串【问题讨论】:
-
你是说它在红/绿之间交替出现..?
标签: javascript jquery arrays string replace