我如何编写一个读取一系列字符串的脚本,并在HTML5 textarea中仅输出以字符“b”开头的字符串?

时间:2015-05-07 03:37:41

标签: javascript string

我需要编写一个脚本,在textarea中读取一系列字符串和输出,只显示以字符“b”开头的字符串。

我使用split元素创建单独的标记,但我不知道如何搜索创建的标记。我需要它从浏览器中的一个输入句子中取出单词,并仅返回以字母“b”开头的那些

我应该使用什么函数来搜索从split函数创建的标记,还是有更简单的方法来搜索子字符串以打印出我需要的结果?

    function findStrings(inputString) {
  var inputArray = [],
  inputArrayLen,
  holdArray = [],
  pat = /\bb/i;

  inputArray = inputString.split(" ");
  inputArrayLen = inputArray.length;

  for (var i = 0 ; i < inputArrayLen; i++) {
    if (pat.test(inputArray[i])) {
      holdArray.push(inputArray[i])
    }
  }
  return holdArray.join(',')

var inputString = document.getElementById( "inputField" ).value
var results = document.getElementById( "results" );

var outputString = findStrings(inputString)

results.innerHTML = "<p>The sentence split into words is: </p>" + 
"<p class = 'indent'>" + outputString + "</p>";
}



// register click event handler for searchButton


function start()
{
   var splitButton = document.getElementById( "splitButton" );
   splitButton.addEventListener( "click", splitButtonPressed, false );
} // end function start

window.addEventListener( "load", start, false );

3 个答案:

答案 0 :(得分:0)

您可以使用chatAt功能。

for (i = 0; i < tokens.length; i++) {
    var mystring = tokens[i];
    if (mystring.charAt(0) == 'b') {
        // append to textarea 
    }
}

charAt(0)获取字符串的第一个字符。为每个子字符串执行此操作。

答案 1 :(得分:0)

通过split()将句子拆分为令牌,您将走上正确的道路。然后,您将获得句子中所有标记的数组。剩下要做的就是迭代该数组并过滤掉任何不以字母b开头的标记,如下所示:

var sentence = "My baby has a nice belly";
var tokens = sentence.split(" ");
var bTokens = tokens.filter(function(token) {
    return /^b/.test(token);
}).join(" ");
document.getElementById("mytextarea").value = bTokens;

答案 2 :(得分:0)

您可以使用此函数搜索字符串并返回包含以b或B开头的所有单词的字符串。

function findStrings(inputString) {
  var inputArray = [],
  inputArrayLen,
  holdArray = [],
  pat = /\bb/i;

  inputArray = inputString.split(" ");
  inputArrayLen = inputArray.length;

  for (var i = 0 ; i < inputArrayLen; i++) {
    if (pat.test(inputArray[i])) {
      holdArray.push(inputArray[i])
    }
  }
  return holdArray.join(',')
}

然后你可以像这样将

添加到HTML中
var inputField = document.getElementById( "inputField" );
var results = document.getElementById( "results" );

function splitButtonPressed (){
    var inputString = inputField.value,
        outputString = findStrings(inputString);

    results.innerHTML = "<p>The sentence split into words is: </p>" + 
    "<p class = 'indent'>" + outputString + "</p>";
}


// register click event handler for searchButton


function start() {
   var splitButton = document.getElementById( "splitButton" );
   splitButton.addEventListener( "click", splitButtonPressed, false );
} // end function start

window.addEventListener( "DOMContentLoaded", start, false );