如何编写正则表达式以匹配我的字符串
how to write a regex to match my string
如何编写 JavaScript RegExp
来匹配
'/api/users'
'/api/users/'
'/api/users?age=22'
'/api/users/?age=22'
但不是
'/api/users/id'
Regex
到目前为止我已经尝试过:
new RegExp('^' + '/api/users' + ''/?''S*' + '$')
如果我理解正确,您只想在查询字符串以 age 参数开头时才匹配它:
/'api'/users'/?('?age='d+|$)/
'api'/users'/?
将匹配/api/users 或 api/users/
('?age='d+|$)
将匹配 ?age=22 或字符串末尾 ($)
[编辑] 根据您的评论,更简单的表达式:
/'api'/users'/?('?|$)/
('?|$)
将匹配查询字符串的开头 (?) 或字符串的结尾 ($)
为了完全匹配这些字符串并用作条件,您可以使用 .test(subjectString):
(/^'/api'/users'/?('?age='d+)?$/).test(subjectString)
这样的模式应该有效:
^/api/users/?('?age=22)?$
或者假设您要为 age 参数匹配的不仅仅是文字22
:
^/api/users/?('?age='d+)?$
这将匹配文字/api/users
,后跟一个可选的'
,后跟一个可选的?age=
和一个或多个数字。
当然,当您将其构建为正则表达式文本时,您需要转义正斜杠:
^/'/api'/users'/?('?age='d+)?/$
或者转义反斜杠并使用 RegExp
构造函数:
new RegExp("^/api/users/?(''?age=''d+)?$")
在/api/users
之后对/id
使用负面展望:
/^'/api'/users(?!'/id).*$/
使用您的示例观看此内容的现场演示。
相关文章:
- Javascript 如何强制 string.replace 不将我的字符串解释为正则表达式
- 将特定的正则表达式模式与我的字符串匹配
- 函数将我的字符串更改为完全不同的值
- 如何检查我的字符串是否包含某些单词
- 如何让我的字符串替换为等于表单输入的值
- Javascript substring() 从我的字符串中返回错误的值
- 为什么我的字符串不是字符串
- 当我的字符串太长时,ParseFloat 的奇怪行为
- 如何编写正则表达式以匹配我的字符串
- encodeURIComponent 似乎在我的字符串中添加了一个字符
- 为什么“ 新字符串('我的字符串');“ 返回一个对象?但是“ 字符串(”我的字符串“);“返回一个字符
- 找到我的字符串所在的数组,并将其发送到变量javascript中
- 为什么我的字符串没有通过正则表达式
- Javascript Regex没有'我的字符串不匹配
- 为什么未定义会被添加到我的字符串中
- 如何获取已删除的字符并在文本区域内更新我的字符串
- Javascript函数将我的字符串参数视为整数
- JavaScript正在从我的字符串中删除反斜杠
- 为什么我的字符串只工作,当我把它手动
- 为什么我的字符串值可以通过淘汰验证,而整数值却不能