我正在尝试做一个正则表达式,它接受包含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/