寻找有关替换方法的更多理解

时间:2013-11-21 01:37:00

标签: javascript regex

我用这个作为coderbyte练习的解决方案(最长的单词)我或多或少地阅读每一行,直到我完全理解它然后复制它我仍然不完全确定它是如何工作的。该代码应该找到句子中最长的单词。

function LongestWord(sen) { 
  //this splits the string(sentence) into an array of words
  var sentence = sen.split(" ");
  var word = "";
  var len = 0;
  // code goes here  
  //this loops through the words split() from the sentence
  for(var i = 0; i < sentence.length; i++) {
  /*this part I don't fully understand if I'm right it replaces any letter a-z 
  regardless of case to ""  */
    var strip = sentence[i].replace(/[^a-zA-Z]/g, "");

    if (strip.length > len) {
      word = strip;
      len = strip.length;
    }
  }
  return word; 

}

主要是我不理解的var strip部分。当我在句子[i]上调用替换方法时会发生什么?这是什么原因?

2 个答案:

答案 0 :(得分:2)

此行var strip = sentence[i].replace(/[^a-zA-Z]/g, "");将删除所有不是字母的字符。

[a-zA-Z]是一个包含所有字母的字符类

[^a-zA-Z]是对先前字符类的否定

g如果进行全球研究(即字符串中的任何地方)

答案 1 :(得分:0)

/[^a-zA-Z]/

如果在行的开头有一个到z(小)A到Z(大写)找到删除那些字符