我有一个正则表达式用短划线替换短划线。但是,只有在前面有空的空间时才需要更换仪表板。 我试过这个:
var txt = str.replace(/^\s-/g,'<br>');
但是,如果前面没有空白区域,也会替换短划线。有什么建议我做错了吗?
答案 0 :(得分:1)
如果不考虑regexp实现中可能存在的可怕错误,我们应该得出结论,如果甚至在一行的最开头放一个破折号,你的字符串确实匹配模式import sql
。怎么会发生?很容易。
请注意/^\s-/
代表换行符(除了其他字符)。所以,如果你有一个字符串为“\ n-”(换行符然后破折号),它将匹配正则表达式,尽管短划线位于一行(第二行)的开头,因为除了行的开头,它也只是一个空格nuber一个。
因此,尽量避免混淆\s
,仅使用空格或\s
。