Javascript 不使用match()查找精确字符串
这是我的密码。我正在尝试匹配已存储在命中数组[]中的确切单词。我只想打印myName变量中的确切内容。没有match()方法我们能做到这一点吗Javascript 不使用match()查找精确字符串,javascript,Javascript,这是我的密码。我正在尝试匹配已存储在命中数组[]中的确切单词。我只想打印myName变量中的确切内容。没有match()方法我们能做到这一点吗 var text=“blaah bllaah bllaah Paolo blahh Paaolo Paolo”; var myName=“Paolo”; var命中率=[]; 对于(var x=0;x您可以使用indexOfmethode: “布拉布拉布拉布拉布拉保罗布拉布拉保罗保罗”。指数('Paolo')=>23 “blaah bllaah blla
var text=“blaah bllaah bllaah Paolo blahh Paaolo Paolo”;
var myName=“Paolo”;
var命中率=[];
对于(var x=0;x您可以使用indexOf
methode:
“布拉布拉布拉布拉布拉保罗布拉布拉保罗保罗”。指数('Paolo')
=>23
“blaah bllaah bllaah Paolo blahh Paaolo Paolo”。indexOf('Paolooo')
=>-1一个简单的条件:
if(text.indexOf(myName) != -1) {
// name found
}
或者,如果要匹配单词,只需将单词列表拆分为一个单词数组:
if(text.split(' ').indexOf(myName) != -1) {
// name found
}
现场观看:
var text=“blaah bllaah bllaah Paolo blahh Paaolo Paolo”;
函数findName(word){
var name=prompt('输入名称:');
如果(!name)
返回;
var t=word?text.split(“”):text;
if(t.indexOf(name)!=-1){
警报('Name'+Name+'found!');
}
否则{
警报('Name'+Name+'未找到!');
}
findName(word);
}
字符串匹配
单词匹配
尝试以下操作:
var text = "Blaaah Bllaaah Bllaaah Paolo Blahhh Paaolo paolo";
var myName = "Paolo";
var foundArray = text.split(" ").filter(function(e){ return e == myName });
if (foundArray.length) { /* name is found */ }
您可以使用精确匹配的简单事实:
if(“abc”==“abc”)
首先创建一个与搜索匹配的数组。然后将所有这些数组元素与上面的代码进行比较。结果如下:
var haystack = "Blaaah Bllaaah Bllaaah Paolo Paolo Blahhh Paaolo paolo";
var search = "Paolo";
// Create an array
var haystackArray = haystack.split(" ");
var hits =0;
// For each array element
for(var i = 0; i < haystackArray.length; i ++){
// Check if this array element match exactly your search string
if(search == haystackArray[i])
hits++;
}
console.log(hits);
var haystack=“Blaaah bllaah bllaah Paolo Paolo blahh Paaolo Paolo”;
var search=“Paolo”;
//创建一个数组
var haystackArray=haystack.split(“”);
var=0;
//对于每个数组元素
对于(var i=0;i
那么:
var text = "Blaaah Bllaaah Bllaaah Paolo Blahhh Paaolo paolo";
var myName = "Paolo";
var textArray = text.split(' ');
var hits = textArray.filter(function(value){ return value === myName; });
if(hits.length === 0 ){
console.log("Your name wasn't found");
}else{
console.log(hits);
}
解决方案使用array.filter()
查找精确的匹配项。declar您的文本作为数组。最好使用匹配函数。例如:“Blaaah bllaah bllaah Paolo blahh Paaolo Paolo”。匹配(/\bPaaolo\b/)这对“PaoloPaolo”不起作用.所以它不是不合理的。而且它不应该…你能在原文中看到PaoloPaolo
吗?应该,当原文中没有“Paolo”一词,但有“PaoloPaolo”时,它会找到Paolo两次我们不在搜索,奥普说他不想找到准确的字符串word@simon,能够清晰地阅读问题和分析OP的原始代码,这将使你比在投票中暴跳如雷走得更远。。。
var text = "Blaaah Bllaaah Bllaaah Paolo Blahhh Paaolo paolo";
var myName = "Paolo";
var textArray = text.split(' ');
var hits = textArray.filter(function(value){ return value === myName; });
if(hits.length === 0 ){
console.log("Your name wasn't found");
}else{
console.log(hits);
}