I'm checking the uri string, but it's really hard to understand even if I see a lot of regular expressions;;;
So I have a question. Help!
The conditions are as follows.
If '/' appears in the last character, false
/api/users
> false
/api
> true
/api?id=asfdasjlk&asdf=asdf
> true
As far as I've tried, /api/users is false, /api is also false, it should be true,
I think I should write an If statement inside the regular expression, but it's frustrating
/\/api\/users[a-zA-Z0-9^\/]/.test('/api/users')
How about this side?
\/api(?!\/users).*[^\/]$
(.*[^\/]+) instead of negate lookbehind?Inserted $
.
It can also be used in JavaScript.
The regular expression itself can be further reduced, so we modified it
(.*[^\/])?$
You said you didn't understand this part, so I'll add an explanation.
The previous \/api(?!\/users)
can satisfy /api
= True, /api/users
= False.
Other conditions to be satisfied are
It is.
First of all, the regular expression that I wrote.*[^\/]$ is broken and explained as follows.
If you combine them, "It's okay to get any string regardless of length ().*
), \ does not end ([^\/]$
).
I thought it would be true if /api
was included.
\/api(?!\/users).*(?<!\/)$
You can squeeze it like this
/\/api(?!\/users).*(?<!\/)$/
I hit the console window as it is, and an error appears.
What does < mean in number 3?
Looking back, the conditions for the question were strange.
`/api`
// // true
`/api?id=1234`
// // true
`/api/`
// // false
`/api/users`
// // false
© 2024 OneMinuteCode. All rights reserved.