Pasar variable a RegExp con límite de palabra

Tengo que pasar al valor RegExp de la variable y señalar un límite de palabra. Tengo una cadena para verificar si contiene un valor variable. No sé cómo pasar a regexp como un valor variable y un atributo de límite de palabra.

Así que algo como esto:

var sa="Sample";
var re=new RegExp(/\b/+sa);
alert(re.test("Sample text"));

Intenté algunas formas de resolver un problema, pero aún no puedo hacerlo :(

Answer

Utilizar este:re = new RegExp("\\b" + sa)

Y como mencionó @RobW, es posible que deba escapar del sa.

Vea esto: ¿Hay una función RegExp.escape en Javascript?

Si desea obtener TODAS las ocurrencias ( g), no distinga entre mayúsculas y minúsculas ( i) y use límites para que no sea una palabra dentro de otra palabra ( \\b):

re = new RegExp(`\\b${sa}\\b`, 'gi');

Ejemplo:

let inputString = "I'm John, or johnny, but I prefer john.";
let swap = "John";
let re = new RegExp(`\\b${swap}\\b`, 'gi');
console.log(inputString.replace(re, "Jack")); // I'm Jack, or johnny, but I prefer Jack.