Return 字符串中的子字符串值

Return the sub string value from string

我来自 ServiceNow 背景。我需要帮助才能从以下字符串值中获取用户名。

"Legal Name Change Submitted for XXXXXXX : ACTION REQUIRED from IT Help Desk".

在上面的文本中,XXXX 指的是用户名,我需要检索该值。它始终位于 "for" 和“:”之间。我如何使用 javascript?

来做到这一点

谢谢, 柴坦尼亚

暴力破解

const message = "Legal Name Change Submitted for XXXXXXX : ACTION REQUIRED from IT Help Desk";
const forWord = 'for';
const forIndex = message.indexOf(forWord);
const colonIndex = message.indexOf(':');
const forLength = forWord.length;

message.slice(forIndex + forLength, colonIndex).trim();

更优雅的解决方案

const message = "Legal Name Change Submitted for XXXXXXX : ACTION REQUIRED from IT Help Desk";
const result = message.match(/(?<=for)(.*)(?=:)/);
const name = result.value[0].trim();

我建议使用 match 和正则表达式

var statement = "Legal Name Change Submitted for XXXXXXX : ACTION REQUIRED from IT Help Desk";
var submittedFor = statement.match(/for\s(.*)\s:/)[1];
console.log(submittedFor); // it will print  XXXXXXX