使用for循环和打印匹配来自两个变量的字符串 [英] Matching a string from two variables using for loop and print
本文介绍了使用for循环和打印匹配来自两个变量的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
var userSearch="guy";
var text="Andriken is nice guy";
var hits=[];
for(var i = 0; i< text.length; i++){
if(text[i] === "guy"){
hits.push(userSearch);
}}
if(hits.length === 0){
console.log("Not found");
}
else{
console.log(hits);
}
我的尝试:
工作如果text [i] ===单个字母(例如g)试图找到并推送字符串!
What I have tried:
working if text[i] === single letter (eg. "g" ) trying to find and push string !
推荐答案
听起来像你需要使用正则表达式。
正则表达式 - JavaScript | MDN [ ^ ]
Sounds like you need to use regular expressions.
Regular Expressions - JavaScript | MDN[^]
var userSearch = /guy/g;
var text = "Andriken is nice guy";
var hits = text.match(userSearch);
if (hits.length === 0) {
console.log("Not found");
}
else {
console.log(hits);
}
如果 userSearch
是由...提供的字符串用户,你需要逃避任何特殊字符。借用此StackOverflow答案中的escapeRegExp函数[ ^ ]:
If the userSearch
is a string provided by the user, you'll need to "escape" any special characters. Borrowing the "escapeRegExp" function from this StackOverflow answer[^]:
function escapeRegExp(str) {
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\
\ |] / g, \\
\|]/g, "\\
&);
}
var userSearchString = >人吗?;
var userSearchPattern = escapeRegExp(userSearchString);
var userSearch = new RegExp (userSearchPattern, g);
var text = 安德里肯是个好人?;
var hits = text.match(userSearch);
...
&"); } var userSearchString = "guy?"; var userSearchPattern = escapeRegExp(userSearchString); var userSearch = new RegExp(userSearchPattern, "g"); var text = "Andriken is nice guy?"; var hits = text.match(userSearch); ...
这篇关于使用for循环和打印匹配来自两个变量的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文