Normalmente esa detección se hace con lenguaje de servidor. En php, por ejemplo, se usa la función nativa
nl2br. De todas maneras, usando bbCode lo normal es aplicar alguna función de transformación de ese bbcode del lado del servidor (es lo normal, aunque podría hacerse con javascript, lo mismo que la transformación de los saltos de línea, pero entonces no tendría mucho sentido usar bbcode, que principalmente se usa para evitar la inyección html sin quitar la posibilidad al usuario de poder agregar una personalización html limitada)