Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

How to filter for users with all capital letters in their first and / or last name

Cheski Frank
Tera Contributor

Hi!

 

In our sys_user table, we have some entries of first and last names that are all in capital letters.

 

Example: "John DOE" or "JOHN Doe" or "JOHN DOE"

 

I know that I can use the toLowerCase and toUpperCase string manipulations, but first I want to be able to find them. It doesn't matter if that is in the sys_user list with a filter or in a background script.

 

Any wisdom here?

 

Thanks and kind regards,

Cheski

1 ACCEPTED SOLUTION

Sandeep Rajput
Tera Patron
Tera Patron

@Cheski Frank Here is the background script you should use to identify Names with following patterns.

1. John DOE

2. JOHN Doe

3. JOHN DOE

var gr = new GlideRecord('sys_user');
gr.query();
var userArray = [];
while (gr.next()) {   // iterate through records
   if(/^([A-Z]+\s[A-Z]+)$|^([A-Z]{1}[a-z]+\s[A-Z]+)$|^([A-Z]+\s[A-Z]{1}[a-z]*)$/.test(gr.getValue('name'))){
        var userObj = {};
        userObj.sys_id=gr.getValue('sys_id');
        userObj.name=gr.getValue('name');
        userArray.push(userObj);
   }
}
gs.info(JSON.stringify(userArray));



This script captures all such names and their sys_id and prints it in the end.

Screenshot 2023-11-04 at 10.15.46 AM.png

Please do not forget to mark the answer correct and helpful if it manages to answer your question.

View solution in original post

2 REPLIES 2

Sandeep Rajput
Tera Patron
Tera Patron

@Cheski Frank Here is the background script you should use to identify Names with following patterns.

1. John DOE

2. JOHN Doe

3. JOHN DOE

var gr = new GlideRecord('sys_user');
gr.query();
var userArray = [];
while (gr.next()) {   // iterate through records
   if(/^([A-Z]+\s[A-Z]+)$|^([A-Z]{1}[a-z]+\s[A-Z]+)$|^([A-Z]+\s[A-Z]{1}[a-z]*)$/.test(gr.getValue('name'))){
        var userObj = {};
        userObj.sys_id=gr.getValue('sys_id');
        userObj.name=gr.getValue('name');
        userArray.push(userObj);
   }
}
gs.info(JSON.stringify(userArray));



This script captures all such names and their sys_id and prints it in the end.

Screenshot 2023-11-04 at 10.15.46 AM.png

Please do not forget to mark the answer correct and helpful if it manages to answer your question.

Cheski Frank
Tera Contributor

@Sandeep Rajput That worked like a charm, many thanks!!