在字符串中获取字符串Javascript

时间:2017-02-08 14:26:15

标签: javascript html string

我有一个带有几个div的html页面。每个div都有以下类之一:tabCurrent,tabVisit,tabNext。我正在尝试搜索string.className并获取以“tab”开头的子字符串,但返回完整的单词tabCurrent等。

我尝试过各种函数,比如string.match(/ tab \ w /),string.exec(),string.includes()。很多函数在字符串中找到字符串,只返回一个Boolean..Or,你需要知道索引和长度。有没有一种很好的方法可以在不使用while循环的情况下从已知索引开始并持续到一个空格来构建字符串?

编辑:我重写了我的问题

说我有一个字符串

var className = 'someClass tabCurrent tabVisit someOtherClass';

我想获得以“tab”开头的类。我正在尝试使用string.match()实现此目的。是否有传递的正则表达式可以实现这一点?

3 个答案:

答案 0 :(得分:0)

你走了。

  1. 收集所有div
  2. 循环每个div并获取其className
  3. 将className拆分为类数组
  4. 将每个类与正则表达式匹配,验证它以tab:/^tab/
  5. 开头
  6. 如果匹配insert to array
  7. var divs = document.getElementsByTagName('div');
    var classRegex = /^tab/;
    var matchedClasses = [];
    
    for (var i = 0; i< divs.length; i++) {
      var currentDiv = divs[i];
      var className = currentDiv.className;
      var classNames = className.split(' ');
      for (var curClass of classNames) {
        if (curClass.match(classRegex)) {
          matchedClasses.push(curClass);
        }
      }
    }
    
    console.log(matchedClasses)
    <div class="tabCurrent"></div>
    <div class="wrapper tabOther tab-three"></div>
    <div class="different"></div>

答案 1 :(得分:0)

这将返回<div class="tabCurrent">的“tabCurrent”:

div.className.match(/tab.+/g);

答案 2 :(得分:0)

如果只有一个myvar = 0 def function_1(): global myvar myvar = 1 } def function_2(): print(myvar) } 课程,您可以使用以下匹配项:

tabSomething

对于多个匹配,您必须在正则表达式上启用全局'someOtherClass tabVisit'.match(/\btab.+?\b/); //['tabVisit'] 标记。