使用for循环和打印匹配来自两个变量的字符串 [英] Matching a string from two variables using for loop and print

查看:97
本文介绍了使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆