如何从.split函数中删除单词?(Javascript)
我写了一个程序,从给定的网页中提取文本 我使用.split将单词放入数组。我想删除任何不以字母开头的单词,例如,5X不会被归类为单词,但X5会被归类为单词 我的代码不起作用如何从.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.
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)删除缩进文本中的额外空格,它可以正常工作。我对此进行了修改,但没有修复。谢谢。我对此进行了修改,但没有修复。谢谢。