The Contents of my String are Lost When I Pass it to Another Method as a Parameter?
Hi,
I am trying to create a Regular Expression system as part of my program. When I pass emailSub (which is a String version of an InputField for the user's email) into other functions within the program, the emailSub goes from the email address (e.g: emailaddress@emailprovider.com) to null (I know this because the output of a Debug.Log before being passed is the email address and Debug.Log-ing it after passing it comes back with " ". This means that when it reaches the length check (IsEmailValid) it is less than 6 characters so all email addresses are rejected as invalid.
How can I fix this problem?
Thanks.
using System.Text.RegularExpressions; using System.Globalization; using UnityEngine; using UnityEngine.UI; using System;
public class RegEx : MonoBehaviour { public InputField emailField; public Button acceptSubmissionButton; public string emailSub;
  public void Start()
  {
      var input = gameObject.GetComponent<InputField>();
      var se = new InputField.SubmitEvent();
      se.AddListener(SubmitName);
      input.onEndEdit = se;
  }
  private void SubmitName(string arg0)
  {
      Debug.Log(arg0);
      emailSub = arg0;
      Debug.Log(emailSub);
  }
 
  public void Sequencer(string emailSub)
  {
      Debug.Log(emailSub);
      IsEmailValid(emailSub);
      Main(emailSub);
  }
 
  public static bool IsEmailValid(string emailSub)
  {
      if (emailSub.Length <= 6)
      {
          Debug.Log(emailSub + "1");
          return false;
 
      }
 
      if (string.IsNullOrWhiteSpace(emailSub))
      {
          Debug.Log(emailSub + "2");
          return false;
      }
 
      try
      {
          emailSub = Regex.Replace(emailSub, @"(@)(.+)$", DomainMapper, RegexOptions.None, TimeSpan.FromMilliseconds(200));
          string DomainMapper(Match match)
          {
              var idnConversion = new IdnMapping();
              var processDomainName = idnConversion.GetAscii(match.Groups[2].Value);
              Debug.Log(emailSub + "3");
              return match.Groups[1].Value + processDomainName;
          }
 
      }
      catch (RegexMatchTimeoutException e)
      {
          return false;
      }
      catch (ArgumentException e)
      {
          return false;
      }
 
      try
      {
          Debug.Log(emailSub + "4");
          return Regex.IsMatch(emailSub, @"^(([0-9a-z]((\.(?!\.))(?<=[0-9a-z])@))" + @"(([0-9a-z][-0-9a-z]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9]{0,22}[a-z0-9]))$", RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));
      }
      catch (RegexMatchTimeoutException)
      {
          return false;
      }
 
  }
 
  public static void Main(string emailSub)
  {
      if (RegEx.IsEmailValid(emailSub))
      {
          Debug.Log($"Valid:   {emailSub}");
          Debug.Log(emailSub + "5");
      }
 
      else
      {
          Debug.Log($"Invalid: {emailSub}");
          Debug.Log(emailSub + "6");
      }
  }
}
Your answer
 
 
             Follow this Question
Related Questions
Search a partial substring and get an argument, function/list-like but with strings 0 Answers
Function overloading with and optional arguments 1 Answer
Awake alternative for UI button (On-Off) 1 Answer
Can I make a prefab have different sprites based on what direction it is facing? 1 Answer
Is it possible to overload methods from unity engine ? 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                