我有一个字符串,可以说:Rishav app OTP is : 1232
我也有正则表达式:/^\b\d{ 4}\b/
当我以某种方式测试正则表达式并将其与字符串匹配时,它向我显示为false。 但是,当我在线测试正则表达式时,它会突出显示OTP。
有人可以帮我提供仅获取OTP号码的代码吗?
答案 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))