从消息中提取OTP并仅在本机反应中显示OTP值

时间:2019-08-29 06:36:33

标签: javascript react-native

我有一个字符串,可以说:Rishav app OTP is : 1232

我也有正则表达式:/^\b\d{ 4}\b/

当我以某种方式测试正则表达式并将其与字符串匹配时,它向我显示为false。 但是,当我在线测试正则表达式时,它会突出显示OTP。

有人可以帮我提供仅获取OTP号码的代码吗?

1 个答案:

答案 0 :(得分:1)

您错误地使用了锚点,^表示字符串的开头,因此它会尝试从字符串的开头匹配模式,而您搜索的 OTP 并不总是假定是在字符串开头,因此只需放下^

let str = "Rishav app OTP is : 1232"

console.log(/\b\d{4}\b/.test(str))

如果您的OTP总是在字符串末尾,则应该使用$,这意味着字符串末尾,即

\b\d{4}$
  

如何获取数字,OTP始终是字符串中的第一位数字

let str = "Rishav app OTP is : 1232"
let str2 = "4561 is the One Time Password for logging into Application /iasdas2123"

let getOTP = (str) => {
  let match = str.match(/\b\d{4}\b/)
  return match && match[0]
}

console.log(getOTP(str))
console.log(getOTP(str2))