Чтобы заменить JJD ровно 16 цифрами после него, можно сказать
str.replace(/(JJD[0-9]{16})/gi,"<a href='somepage.html/foo?value=$1'>$1</a>");
если вам не нужно ровно 16 цифр, но нужно что-то вроде 10-20 цифр, вы можете сказать
str.replace(/(JJD[0-9]{10,20})/gi,"<a href='somepage.html/foo?value=$1'>$1</a>");