Ваш текущий шаблон соответствует карете, за которым следует символ пробела (пробел, табуляция, новая строка и т. Д.), Но вы хотите совместить каретку, за которой следует один символ или несколько символов, завернутых в награды, в качестве строки находится в TeX.
/\^(?:([\w\d])|\{([\w\d]{2,})\})/g
Теперь, используя str = str.replace(/\^(?:([\w\d])|\{([\w\d]{2,})\})/g, "<sup>$1</sup>");
, следует выполнить эту работу.
Вы можете сделать более общую функцию из этого выражения, которые могут обернуть символы префиксом определенного символа с определенным тегом.
function wrapPrefixed(string, prefix, tagName) {
return string.replace(new RegExp("\\" + prefix + "(?:([\\w\\d])|\\{([\\w\\d]{2,})\\})"), "<" + tagname + ">$1</" + tagname + ">");
}
Например, вызов wrapPrefixed("1_2 + 4_{3+2}", "_", "sub");
результатов в 1<sub>2</sub> + 4<sub>3+2</sub>
.
Попробуйте '.replace (/ \^(\ d +)/g, '$ 1')'. Вам нужно также управлять пробелами вокруг этих значений определенным образом? –
Нет его достаточно .. я получил его ответ спасибо за вашу помощь. – prasanth
Если я могу применить функцию двойного тега в одном и том же регулярном выражении, например: ''^"заменить $ 1' и '" ⌄ "заменить на 1 $ '. Что делать? скажите, как я могу изменить код? – prasanth