Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to write a regex pattern which accepts space in between words?

I am very new to the regex patterns. I am developing one api which accepts the user value(status), based on the status it will perform the filtering operation upto this it’s working fine.

Now what my requirement is I want to accept the value based on:

  1. if the string contains multiple words it should be separated by space only not other symbols(/_) .

    MEDevel.com: Open-source for Healthcare and Education

    Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

    Visit Medevel

  2. Both caps and small letters are allowed .

Valid scenarios:

  1. Ready to dispatch
  2. ReaDy To Dispatch
  3. cancelled
  4. CanceLled

Invalid scenarios:

  1. Ready_to_dispatch

  2. Ready-to-Dispatch

    $pattern=[a-zA-Z];
    $validation=preg_match($pattern,$request->status);
    if($validation){
      //My logic executes if it matches the pattern
    }
    

>Solution :

For the pattern you could repeat the character class one or more times, and as only a space is allowed between the words, optionally repeat the same character class preceded by a space.

^[A-Za-z]+(?: [A-Za-z]+)*$

You could update the code to placing the pattern between quotes and add delimiters / around the pattern.

$pattern="/^[A-Za-z]+(?: [A-Za-z]+)*$/";
$validation = preg_match($pattern,$request->status);

if($validation){
    //My logic executes if it matches the pattern
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading