如何从.split函数中删除单词?(Javascript)

如何从.split函数中删除单词?(Javascript),javascript,html,arrays,Javascript,Html,Arrays,我写了一个程序,从给定的网页中提取文本 我使用.split将单词放入数组。我想删除任何不以字母开头的单词,例如,5X不会被归类为单词,但X5会被归类为单词 我的代码不起作用 function getWords(node) { var text = node.innerText; output.textContent = inputValidation(text) } function inputValidation(text) { var wordData = text.

我写了一个程序,从给定的网页中提取文本

我使用.split将单词放入数组。我想删除任何不以字母开头的单词,例如,5X不会被归类为单词,但X5会被归类为单词

我的代码不起作用

function getWords(node) {
    var text = node.innerText;
    output.textContent = inputValidation(text)
}
function inputValidation(text) {
    var wordData = text.split();
    for (i in wordData) {
        if (isLetter(i[0] == False)) {
            wordData.splice(i, 1);
        }

    } return wordData
}

function isLetter(str) {
    return str.length === 1 && str.match(/[a-z]/i);
}

把你的胰岛移植到

function isLetter(str) {
if (str.match(/^\d/)) {
   return true;
}
return false;
}

把你的胰岛移植到

function isLetter(str) {
if (str.match(/^\d/)) {
   return true;
}
return false;
}

您可以轻松地将其打包到过滤器中,如下所示:

let output=document.querySelector(“输出”);
getWords(document.querySelector(“p”);
函数getWords(节点){
让text=node.innerText;
output.textContent=text.split(“”).filter(word=>word[0].toLowerCase().match(/[a-z]{1}/);
}
你好,世界!点击这里再见世界!X7 9x


您可以轻松地将其打包到过滤器中,如下所示:

let output=document.querySelector(“输出”);
getWords(document.querySelector(“p”);
函数getWords(节点){
让text=node.innerText;
output.textContent=text.split(“”).filter(word=>word[0].toLowerCase().match(/[a-z]{1}/);
}
你好,世界!点击这里再见世界!X7 9x


您的代码似乎不正确,因为您将
isLetter
函数中的
boolean
值传递为
isLetter(i[0]==False)
,这同样不正确,因为
F
应该是小写的,即
False
。代码中有很多错误,但是您可以使用
parseInt()
isNaN()
检查整个单词是否以字符或数字开头

//当您将字母作为第一个字符时
变量字='X5';
var isleter=isNaN(parseInt(word));
控制台日志(Isleter);
//当你没有一个字母作为第一个字符
word='5ABC';
isLetter=isNaN(parseInt(word));

控制台日志(Isleter)
您的代码似乎不正确,因为您在
isLetter
函数中传递
boolean
值作为
isLetter(i[0]==False)
,这同样不正确,因为
F
应该是小写的,即
False
。代码中有很多错误,但是您可以使用
parseInt()
isNaN()
检查整个单词是否以字符或数字开头

//当您将字母作为第一个字符时
变量字='X5';
var isleter=isNaN(parseInt(word));
控制台日志(Isleter);
//当你没有一个字母作为第一个字符
word='5ABC';
isLetter=isNaN(parseInt(word));

控制台日志(Isleter)我认为问题在于这一行代码

    if (isLetter(i[0] == False)) {
应该是

    if (isLetter(i[0]) == False) {
或者更好

    if (!isLetter(i[0])) {

我认为问题在于这一行代码

    if (isLetter(i[0] == False)) {
应该是

    if (isLetter(i[0]) == False) {
或者更好

    if (!isLetter(i[0])) {
例如:

var text="abc def 10hij kl 3GH";

var splitedtext=text.split(" ");
var dummyarray=[];

for(var i=0;i<splitedtext.length;i++){
    var thistext=parseInt(splitedtext[i]);
  if( thistext.toString() == "NaN" ){
        dummyarray.push(splitedtext[i]);
  }
}

$("body").html(dummyarray.join(" "));
var text=“abc def 10hij kl 3GH”;
var splitedtext=text.split(“”);
var dummyarray=[];
对于(var i=0;i示例:

var text="abc def 10hij kl 3GH";

var splitedtext=text.split(" ");
var dummyarray=[];

for(var i=0;i<splitedtext.length;i++){
    var thistext=parseInt(splitedtext[i]);
  if( thistext.toString() == "NaN" ){
        dummyarray.push(splitedtext[i]);
  }
}

$("body").html(dummyarray.join(" "));
var text=“abc def 10hij kl 3GH”;
var splitedtext=text.split(“”);
var dummyarray=[];

对于(var i=0;iHi感谢您的帮助。使用您的代码,它从“Hello world!单击此处再见world!X7 9x”变为“Hello,world!,here,world!,X7”由于某种原因,它跳过了几个单词。它确实成功地跳过了不正确的单词。正如您从我刚才所做的编辑中看到的,它也可以使用它们。这肯定是我的代码中的一个错误。我使用文本节点来检索文本。哦,好的。我假设
node
引用了DOM节点,并且您使用的是HTML元素,我最终得到了它它通过删除缩进文本中多余的空格来工作。split(/\s+/g)您好,谢谢您的帮助。使用您的代码,它从“Hello world!单击此处再见world!X7 9x”变为“Hello,world!,here,world!,X7”由于某种原因,它跳过了几个单词。它确实成功地跳过了不正确的单词。正如您从我刚才所做的编辑中看到的,它也可以使用它们。这肯定是我的代码中的一个错误。我使用文本节点来检索文本。哦,好的。我假设
node
引用了DOM节点,并且您使用的是HTML元素,我最终得到了它通过使用text.split(/\s+/g)删除缩进文本中的额外空格,它可以正常工作。我对此进行了修改,但没有修复。谢谢。我对此进行了修改,但没有修复。谢谢。