从段落中搜索文本 - Javascript
Searching a text from a paragraph - Javascript?
我编写了以下代码来从段落中搜索我的名字,
/*jshint multistr:true */
text = "Blah blah blah blah blah blah Elic '
blah blah blah Eric blah blah Eric blah blah '
blah blah blah blah blah Eric";
var myName = "Eric";
var hits = [];
var l=0;
var count=0;
// Look for "E" in the text
for(var i = 0; i < text.length; i++) {
if (text[i] === "E") {
for(var j = i; j < (myName.length + i); j++) {
for(var k =1; k < 4; k++) {
if(text[i+k] === myName[k]){
hits.push(text[j]);
}
else {
break;
}
}
}
}
}
if (hits.length === 0) {
console.log("Your name wasn't found!");
} else {
console.log(hits);
}
但是输出就像 [ 'E',
'E',
'E',
'r',
'r',
'r',
'i',
'i',
'i',
'c',
'c',
'c',
'E',
'E',
'E',
'r',
'r',
'r',
'i',
'i',
'i',
'c',
'c',
'c',
'E',
'E',
'E',
'r',
'r',
'r',
'i',
'i',
'i',
'c',
'c',
'c' ]
我确定这是因为第三个 for 循环,请给出一些建议来微调此代码,以便输出如下所示,
[ 'E', 'r', 'i', 'c', 'E', 'r', 'i', 'c', 'E', 'r', 'i', 'c', 'E', 'r', 'i', 'c' ]
提前谢谢。
1
var res = text.match(new RegExp(myName, 'g')).join('').split('');
阿拉伯数字
var text = "Blah blah blah blah blah blah Elic '
blah blah blah Eric blah blah Eric blah blah '
blah blah blah blah blah Eric";
var myName = "Eric";
var hits = [];
var l = 0;
var count = 0;
var foundName = '';
for (var i = 0; i < text.length; i++) {
foundName = '';
if (text[i] === "E") {
for (var j = 0; j < myName.length; j++) {
foundName += text[i + j];
}
if (foundName === myName) {
for (var k = 0; k < myName.length; k++) {
hits.push(foundName[k]);
}
}
}
}
console.log(hits);
你不需要这两个内部for
循环。当你break
时发生了什么,你正在突破最里面的for循环,但仍然在运行第二个for循环。
尝试这个而不是两个内部的 for 循环:(替换涉及 j
的 for 循环)
for (var k = 0; k < 4; k++) {
if (text[i + k] === myName[k]) {
hits.push(text[i + k]);
} else {
break;
}
}
不确定您要对结果做什么,但假设您只想测试名称是否在字符串中,则使用 .indexOf()
方法,因此:
var n = text.indexOf("Eric");
然后n
的结果将显示第一个字符的索引位置,如果找不到匹配的单词,那么它将返回-1
。
因此,然后将其添加到一个简单的测试中,例如:
if(text.indexOf("Eric") <0){
''doStuff
}
你可以
尝试使用 javascript .indexOf() 函数。
text = "Blah blah blah blah blah blah Elic '
blah blah blah Eric blah blah Eric blah blah '
blah blah blah blah blah Eric";
if(text.indexOf('Eric') < 0 ){
console.log("Your name wasn't found!");
}
请尝试这个..
text = "Blah blah blah blah blah blah Elic lah blah blah Eric blah blah Eric blah blah blah blah blah blah blah Eric";
var charFound=0;
var myName = ['E' , 'r', 'i' ,'c'];
var hits = [];
var l=0;
for(var i = 0; i < text.length; i++)
{
if(text[i] === myName[charFound])
{
charFound++;
}
else
{
continue;
charFound=0;
}
if(charFound == 4)
{
for(var j = 0; j < 4; j++)
{
hits.push(text[i-j]);
}
charFound = 0;
}
}
// Rearranging the hits counter to match the requirement
for(var k = 0; k <hits.length/2; k++ )
{
var temp="";
temp = hits[k];
hits[k]= hits[hits.length-k-1];
hits[hits.length-k-1] = temp;
}
alert(hits);
相关文章:
- 从单独的html文件预览Javascript文本
- Javascript文本框验证不起作用
- 使用TreeWalker检索非Javascript文本节点
- Javascript文本框-查找最低的输入和填充
- javascript文本验证不起作用.警报消息没有't显示
- JavaScript 文本节点属性
- 简单的Javascript文本编辑器或一组函数
- 将光标放在 javascript 文本框的末尾
- JavaScript 文本区域值,带有数据库中的新行
- 从动态创建的javascript文本框中获取文本输入
- 为什么这个使用谷歌URL的Javascript文本到语音不起作用
- 如何在Javascript文本区域中捕获事件以记录所有键入的文本
- JavaScript文本转换
- 我正在尝试将javascript文本框的输入保存回服务器.我想从保存的弹出文本框中获得输入,以重命名文件夹
- JavaScript文本游戏积分系统
- 基于编辑距离的javascript文本相似度百分比算法
- 如何在React.NET中导出JavaScript文本
- 用于javascript文本输入的简单-+按钮
- asp.net c#中的javascript文本框验证
- 从javascript文本模板访问HTML类