【问题标题】:How do I get each Index of specified word inside a string in javascript?如何在javascript中的字符串中获取指定单词的每个索引?
【发布时间】:2018-05-30 08:58:25
【问题描述】:

我有一个由 LHS、运算符、RHS 组成的复杂表达式。在表达式中,我需要放置一个输入框来代替每个 RHS,并在其中附加值。

于是,我想到了找到表达式中所有运算符的位置,并在其旁边放置一个输入框。 她就是一个例子:

我有一个字符串var a = "(temp >= 10) && (humid >= 20) ",其中,我需要在字符串表达式中找到>= 的每个位置(索引)。

我尝试比较单个字符,但这对我没有帮助。我需要如何使用 Javascript 或 Jquery 来做到这一点?

【问题讨论】:

  • 在 Google 中输入“javascript index of”,然后按照它的自动更正提示...?
  • 每个这个词在这里有所作为

标签: javascript jquery


【解决方案1】:

要获得子字符串的单个索引,因此您必须使用著名的indexOf 方法。

要获取所有索引,您可以使用此技巧

var indices = [];
var str = 'var expression = "(temp >= 10) && (humid >= 20)"'

// using a regex with the global flag
str.replace(/>=/g, function(q, index) {
  indices.push(index)
  return q;
})

【讨论】:

    【解决方案2】:

    尝试以下方法:

    var expression = "(temp >= 10) && (humid >= 20)";
    expression = expression.split('');
    expression.forEach(function(item, i){
      if(item === '>'){
        console.log('position of >: ' + i)
      }
      else if(item === '='){
        console.log('position of =: ' + i)
      }
    });

    【讨论】:

      【解决方案3】:

      您需要一个正则表达式来在字符串中进行全局搜索。点赞var regex = />=/gi 检查已经给出的答案here

      【讨论】:

        【解决方案4】:

        您可以使用indexOf,然后使用循环来检查返回值。

        来自文档

        indexOf() 方法返回给定元素所在的第一个索引 可以在数组中找到,如果不存在则为 -1。

        var a = 'var a = "(temp >= 10) && (humid >= 20) "';
        var positions = [];
        var position = -1;
        while ((position = a.indexOf(">=", position + 1)) !== -1) {
            positions.push(position);
        }
        console.log(positions);

        【讨论】:

          【解决方案5】:

          您可以参考indexOf

          indexOf 将返回匹配为真的第一个索引, 试试:

          console.log(expression.indexOf('>='));
          

          这将打印第一个'>=' 出现的索引。 indexOf 可以使用第二个参数指定搜索的起始索引,expression.indexOf('>=', 7);(其中 7 是第一次出现的索引)将获得第二个索引。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-12-26
            • 2021-05-03
            • 2021-05-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-07-28
            相关资源
            最近更新 更多