我试图做一个接受包含3到10个字符的字符串的正则表达式(允许字符串前后的空格)。
为什么这样:
return (this.state.user.name.match(`^\s*([a-zA-Z0-9.\-_]{3,10})\s*$`));
当我尝试在字符串之前和/或之后放置空格时,返回false? (如果我不放空格,它就能正常工作。)
我可能遗漏了一些东西,因为它使用正则表达式测试器: https://regex101.com/r/2371SM/1
感谢您的帮助。
答案 0 :(得分:3)
当您将正则表达式作为字符串传递时,您必须执行双\\
以便转义\
而不是后面的字母:
console.log(((" abcd").match(`^\\s*([a-zA-Z0-9.\-_]{3,10})\\s*$`)));
console.log(((" abcd").match(/^\s*([a-zA-Z0-9.\-_]{3,10})\s*$/)));