Ask a Question

Find part of a string with regular expression in a given string

tvklovesu
Frequent Contributor

Find part of a string with regular expression in a given string

Hello,

I have a test where I need to create filters with text using logical operators as below. In the results it returns all the matching records. I am not getting any idea how to test this with TestComplete aqString method.

For ex. when I search with text "Surface Active", here I need to use quotes in the search term. The results returned as DORGANIC SURFACE ACTIVE PRODUCTS AND PREPARA

Now I need to verify if the given text Surface Active exists in the results returned. 

The issue is my variable to enter the search text will be like "surface Active". When I use aqString.find method that will return false because the quotes doesn't match.

 

tvklovesu_1-1689364058260.png     tvklovesu_2-1689364160561.png    

 

I have few other logical operators similarly to use and like to know the best approach that I can do to verify.

tvklovesu_0-1689363897521.png

 

7 REPLIES 7
rraghvani
Champion Level 3

Read through aqString Object and try out the examples shown in Methods, such as aqString.StrMatches Method.

 

 

tvklovesu
Frequent Contributor

I looked at that method and was able to utilize few of them like (", ?, *) and was able to achive what I want to do. but for the other logical operators like And, Or, Not etc I can't find any solution. Do you have any other thoughts that I can try.

Thanks

rraghvani
Champion Level 3

Refer to Logical AND (&&) and the other operators shown for JavaScript.

tvklovesu
Frequent Contributor

Thanks for your input. Actually I wrote my own function to test those three operators as below. Please let me know if you think I can still simplify this. Also I need to test one more condition that is when searched with text along with ~ (Ex. Muhamed~ returns results including Muhammad, Mohamed, Muhammed, etc.). Is there any way that I can test if the string is similar to what I searched for. I tried looking in to the reqular expressions but can't find it.

 

function VerifyString(colString, operatorType){
wordCount = stringArry.length-1
result = []
if (operatorType=='and'){
  for (j=0;j<=wordCount; j++){
    if (aqString.StrMatches(stringArry[j], colString) ==true){
      result.push(true)
    }else{
      result.push(false)
    }
    if (result.indexOf(false)==0){
      Log.Error("The text in the column "+colString+" doesn't contain the word "+stringArry[j])
    }
  }
}
if (operatorType=='or'){
  for (j=0;j<=wordCount; j++){
   if (aqString.StrMatches(stringArry[j], colString) ==true){
     result.push(true)
   }else{
     result.push(false)
   }
  }
  if (result.indexOf(true)==-1){
    Log.Error("The text in the column doesn't contains any of the search words "+colString)
  }
}
if (operatorType=='not'){
  for (j=0;j<=wordCount; j++){
   if (aqString.StrMatches(stringArry[j], colString) ==true){
     result.push(true)
   }else{
     result.push(false)
   }
   
  }
  //Log.Message(result.indexOf(true) +", "+result[wordCount])
  
  if (result.indexOf(true)==-1 || result[wordCount] != false){
    Log.Error("The text in the column doesn't match with the search string "+colString)
  }
}
}

 

rraghvani
Champion Level 3

Read through String-searching algorithm to get some ideas.

tvklovesu
Frequent Contributor

Sorry for the late reply. I looked and can't find what I am looking for. If you come across and have a solution, please post that here.

rraghvani
Champion Level 3

The solution is to write your own algorithm. What you are requesting is not a standard "search" function, so there won't be many results if you do an internet search.

cancel
Showing results for 
Search instead for 
Did you mean: