我正在尝试做一个正则表达式,它接受包含3-10个字符的字符串(允许在字符串前后使用空格)。

为什么这样做:

return (this.state.user.name.match(`^\s*([a-zA-Z0-9.\-_]{3,10})\s*$`));


当我尝试在字符串之前和/或之后放置空格时,返回false?
(如果我不留空格,它将正常工作。)

我可能会丢失一些东西,因为它可以使用正则表达式测试器工作:
https://regex101.com/r/2371SM/1

谢谢你的帮助。

最佳答案

当您将正则表达式作为字符串传递时,必须对\\进行加倍,以便转义\而不是其后的字母:



console.log(((" abcd").match(`^\\s*([a-zA-Z0-9.\-_]{3,10})\\s*$`)));

console.log(((" abcd").match(/^\s*([a-zA-Z0-9.\-_]{3,10})\s*$/)));

关于javascript - 正则表达式在字符串前后接受空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50070149/

10-09 23:34
查看更多