Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

How use Regex on a Variable Multi Line Text ?

Jeff60
Kilo Expert

Hi all,

Currently, it is not possible to use "Validation Regex" on a variable of type "Multi Line Text".
I regularly use this possibility with "Single Line Text".

Unable to do so, I want to develop a validation script after entering the value in the field.

The value to validate is an RSA key of private type.

And it should be written like this :

----- BEGIN RSA PRIVATE KEY -----
MIIEpQIBAAKCAhjfsyneysdKC + aTZbetCh + h8VxOBIB / yMKMAUwT5hkAoV0Jp5NSp
uOQf16ZE1e4LfupQDWTr1YlL3M / LTSkshgsPCp9yL6ysiJrNM6yIcpTQQn8xHCJQo
trK2refJhjnS0d9RBuQYhiO9itsfgEuFM2n7GoW3prxebVDWixQnyOAC / DpQd7bAT
9mo3QdB8ulqYVoefcP2P6yxU68zbu1G0xQEoBjSszGIeBZUUYSmqGHuXNrrGOi1v
ii6uZQ4sa5T6Zuh23aH1rjiCWJUrGjHhYdodHv4kXCp4tslDqoP47zqquzEa77yC
nc / wlDjCFQuuj + HeID4uUQnCTJTkvqfduB / 6gQIDAQABAoIBAQC2cgZklv3PV + 1W
T5k0PxtMnBbPi / oCOeAg72qqv0Wa3A3wVnJaWbcX7Iw6 + rcBNsPMThT15zKlV9or
P0Y / Ash12xd6YvPzS78UYzjM5Y3VcO7Q / DFz8LcNHsFKYvDGjiXFv + UZeztgPpGp
4bwPaA41iYX6cZtW1r5GMCBETudzigoe73E / RBpdRUN6jMreJDCdG / x + fjsDJK2o
SOZwiu2EKu9Cy5kMLqn1NcoxzngI0uujMQmei4j9s2xK9TKvEkoRe89rrzXDt0G6
/ QPH5ttAc1CX6VFR7KWroUwbxOoQ1TEidMX96gq8pUCOSTOqVpgX / QyA5aJUWaZX
biXI3MnBAoGBAPHZIig19h5Z0AbIDOL9HIl4IjXaO7rb0Y6vcpgdJQjgcxxsr4wc
Ud2C6PNskxodO67t3nCreoz1ZpmgO0zmKvru2iwoZaIZLsFrliv3YTTkhhsUXisT
Z6lHdLZrsyCT + mhsGAzz1pFu5Cz1oDhIW2Oorkomt3bnEW1YBPSCHNWbAoGBANZQ
pW60gDFz97foG1TBdZBz19egvdwnkI5Bhq + nTI8qFso6Z8A1YlRUF8uD66LTHp7v
hanWxkULy3UdvbO6AhvbDqrDxCpyqx91mfrkJjgHFLYSWXnW / gqkOc / gvfXXUQt3
ni5IdO4QPuK4CMHdOXsHLhPA9SIEFUebyQG + xmATAoGAQds0t + ppyL4ALbiP + cee
27hA6JUyqqFtIQOZmt5k1VP5RIY8D1Uu3bjmIlMwg23ucKYJanjneDbi53aAb2JF
1erwshGWC1v8JWNck0Bb0gFgm0MimWxBUBFLMNmG / 5oMGB9HNU + 44AVoUO3Z4Tmi
2TJ3s21zjAdD8ZiEUOiVXX0CgYEAxheE0e7FDvDB55sCqDSpFfv9ZbGNzBBF7Tdj
5rgca7fbmNCjVWYCnS + dTt + Azd + WThHW2kVKvkdIp9f1oEot6NFxnSWWDCYxRcLN
sLlxGhhxbFlJmvS9m9hwF1UEQFfk8VR / QQh4DBO4DJdOgOKaXr0kOd4AtpBPmwDD
qnlLo0ECgYEApSikNmX5gzjjWiYJrI9bScuWXKmFMbsp9VjKQEoKdu6O8TrrIY + 5
EAyPxcoDrGfP3vJBF9v5QUV7CI5 + / Vr2W1ALyrn + GySNP74HIxIJ3ma / MW5UYLjw
FsTuJK0DHUEWNQcz + BI1TMWjTte00XBM / 3egd +++ 5n9uUHERp / 8pV70 =
----- END RSA PRIVATE KEY -----

Here is the Regex that I developed :

(-----BEGIN RSA PRIVATE KEY-----\n)\K.*+(?>\n.*)*?(?=\n(-----END RSA PRIVATE KEY-----))

I check for :

  1. the presence of '-----BEGIN RSA PRIVATE KEY-----' at the beginning with a line break.
  2. several lines with any type of character and a line break.
  3. the presence of value '-----END RSA PRIVATE KEY-----'

I find this script but it doesn't work :

Catalog client script:

function onChange(control, oldValue, newValue, isLoading) {
	if (isLoading || newValue == '') {
		return;
	}
	var regex = g_form.getValue('scm_rsa_key_private_part');

	if(!regex.match('(-----BEGIN RSA PRIVATE KEY-----\n)\K.*+(?>\n.*)*?(?=\n(-----END RSA PRIVATE KEY-----))')){  
		alert('Please enter a valid RAS key');
		g_form.setValue('scm_rsa_key_private_part','');  
	}
}

Have you any idea ?

Thanks you

1 ACCEPTED SOLUTION

Jeff60
Kilo Expert

Hello All,

Here is the solution that works for me.

Catalog client script :

function onChange(control, oldValue, newValue, isLoading) {
	if (isLoading || newValue == '') {
		return;
	}
	var getval = g_form.getValue('YOURFIELD'); //Replace YOURFIELD by the name of your field.
	var regex = '-----BEGIN RSA PRIVATE KEY-----([^-!]+)-----END RSA PRIVATE KEY-----'; //Regex for RSA key (Private part)
	if(!getval.match(regex)){  
		g_form.addErrorMessage('Please enter a valid RSA Key (Private Part).');
		g_form.setValue('YOURFIELD','-----BEGIN RSA PRIVATE KEY-----\n!YourRSAkey!\n-----END RSA PRIVATE KEY-----'); //Replace YOURFIELD by the name of your field.
		return false;
	}
}

Thanks for your help.

View solution in original post

5 REPLIES 5

JerryJ071847183
Tera Sage

Your regular expression doesnt match the string .

 

You can verify it in regex101.com website.

 

First you need to make correct regex and then proceed forward .

 

Go to this site to brush up your regex skills

https://regexone.com/

 

Mark my ANSWER as CORRECT and HELPFUL if it helps

Jeff60
Kilo Expert

Hello,

For me, it's ok !

find_real_file.png

 

Where is /gm in your client script

Milind Gharte
Kilo Guru

Hi,

Here is link which will help you.

https://stackoverflow.com/questions/587345/regular-expression-matching-a-multiline-block-of-text

 

If it helps,Please mark Correct and 👍 Helpful.

Warm Regards,

Milind