Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Trim string with ScriptRunner

Hi guys, hope you are doing great. I hope someone can help me with the following:

I have a text custom field (single line) that stores values like 'xyz@something.com'.

I need to trim the string before the '@' and copy that value in another text field (vía post-function).

So, if the original value is 'xyz@something.com', I need to store the value 'xyz' in another text field.

Thank you in advance for your help.

Best.

2 answers

1 accepted

2 votes
Answer accepted

You want something like this... completely untested. Put this function first in the list of post-functions.

import com.atlassian.jira.component.ComponentAccessor

def customFieldManager = ComponentAccessor.getCustomFieldManager()
def emailCf = customFieldManager.getCustomFieldObjectByName("Email") 
def mailboxCf = customFieldManager.getCustomFieldObjectByName("Mailbox") 

def mailBox = (issue.getCustomFieldValue(emailCf) as String)?.replaceAll(/@.*/, '')
issue.setCustomFieldValue(mailboxCf, mailBox)

Jamie you are genious. It worked perfectly. smile

Thank you so much!

Best.

Hi @Jamie Echlin [Adaptavist], do you know how to accomplish something similar but lets assume that instead of  "@" I have "["....I am trying as /[.*  but it is throwing an error.

 

Thanks

assert "bar" == "foo[bar".replaceAll(/.*\[/, '')

Thank you @Jamie Echlin [Adaptavist]...it worked.

@JamieA 

I want to copy issue key(e.g DUP-35) to a custom field without character(-)e.g DUP35.

I have created a scripted field and got value of issue key copied to custom field, but when i try to use .replaceAll(-) function, it is returning value without trimming character(-) (e.g displaying as DUP-35 itself on custom field).

import com.atlassian.jira.issue.Issue
Issue issue=issue
def key=issue.getKey()

return key.replaceAll(/.-*\[/, '')

 

Any thoughts on how to return value without special character(-)

I would reccomend to use split method for String like this:

CustomFieldManager cstFldMng = ComponentAccessor.getCustomFieldManager();
issue.setCustomFieldValue(
    cstFldMng.getCustomFieldObjectByName("where to set")
    ,( (String) issue.getCustomFieldValue(cstFldMng.getCustomFieldObjectByName("from field"))).split("@")[0]())

Thank you for your time Vasiliy. Unfortunetly it didn't work.

Best.

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Apps & Integrations

🍻🍂Apptoberfest Update: Upcoming Virtual Events 🎉

Hello Community! I hope you've been enjoying the 🍂Apptoberfestivities🍂 (I know I have!) The event is heating up next week with a series of virtual events that we're calling the 🍻🍂Partner App ...

316 views 3 14
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you