在解决这个正则表达式问题方面需要帮助,我被困住了,无法解决。我正在使用nodejs 6.10
例如以下是传入模式
我需要帮助创建一个正则表达式匹配所以 -
- 仅匹配测试,不是test123或test / 或
- 对于test123,它不应在测试时预匹配
目前我正在使用以下规则进行重定向
‘^/test /test-videos.html [R=302,L]’
'^/test/ /test/videos.html [R=302,L]’
'^/test123 /test/test-videos.html [R=302,L]’
获取www.domain.com/test
它与/test-videos.html上的测试和返回302匹配
在302上,当请求在服务器上再次到达/test-videos.html时
再次匹配测试,并使用/test-videos.html-videos.html返回302,
并且在该请求上再次相同,因此它进入一个无休止的循环
/test-videos.html-videos.html-videos.html
/test-videos.html-videos.html-videos.html-videos.html-videos.html-videos.html-videos.html-videos.html-videos.html
需要有关匹配表达式的帮助 在没有成功的情况下进行测试。
答案 0 :(得分:0)
您可以使用$来匹配字符串的结尾,例如'^测试$'
答案 1 :(得分:0)
你快到了。您有^
用于匹配字符串的开头。您只需在$
之后添加test
以匹配输入的结尾。来自MDN的正则表达式指南:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#special-dollar
$匹配输入结束。如果multiline标志设置为true,则也会在换行符之前立即匹配。例如,/ t $ /与“eater”中的't'不匹配,但在“eat”中匹配它。
const testRegex = /^test$/;
const justTest = testRegex.test('test');
const trailingSlash = testRegex.test('test/');
const numbers = testRegex.test('test123');
console.log('match test', justTest)
console.log('trailing slash', trailingSlash)
console.log('numbers', numbers)