удаление чисел из строки?

<p>удаление чисел из строки</p><pre><code> questiontext = "1 ding ?" </code></pre><p>я хочу заменить этот номер и номер вопроса, номер может быть любым числом, я попробовал следующий код, который не работает </p><pre><code> questiontext.replace(/[0-9]/g, ''); </code></pre>

<p>очень близко, попробуйте:</p><pre><code>questiontext = questiontext.replace(/[0-9]/g, ''); </code></pre><p><code>replace</code> не работает с существующей строкой, он возвращает новую. если вы хотите использовать его, вам нужно сохранить его!<br> аналогично, вы можете использовать новую переменную:</p><pre><code>var withnodigits = questiontext.replace(/[0-9]/g, ''); </code></pre><p>последний трюк для удаления целых блоков цифр одновременно, но этот может зайти слишком далеко:</p><pre><code>questiontext = questiontext.replace(/\d+/g, ''); </code></pre>

<p>строка <a href="http://en.wikipedia.org/wiki/immutable\_object">immutable</a> , поэтому <code>questiontext.replace(/[0-9]/g, '');</code> сама по себе <em>работает</em>, но не меняет строку questiontext. вам нужно будет присвоить результат замены другой string-переменной или снова самому querytext.</p><pre><code>var cleanedquestiontext = questiontext.replace(/[0-9]/g, ''); </code></pre><p>или за один раз (используя <code>\d+</code>, см. ответ коби):</p><pre><code> questiontext = ("1 ding ?").replace(/\d+/g,''); </code></pre><p>и если вы хотите обрезать начальное (и конечное) пространство (я), пока вы на нем:</p><pre><code> questiontext = ("1 ding ?").replace(/\d+|^\s+|\s+$/g,''); </code></pre>

<p>вы замечательно близки.</p><p>вот код, который вы написали в вопросе:</p><pre><code>questiontext.replace(/[0-9]/g, ''); </code></pre><p>код, который вы написали, действительно смотрит на переменную questiontext и производит вывод, который является исходной строкой, но цифры заменяются пустой строкой.</p><p>однако он не присваивает его автоматически обратно исходной переменной. вам нужно указать, что назначить:</p><pre><code>questiontext = questiontext.replace(/[0-9]/g, ''); </code></pre>

<p>просто хочу добавить, так как это может быть кому-то интересно, что вы можете думать о проблеме и по-другому. я не уверен, если это представляет интерес здесь, но я считаю это актуальным.</p><p>под другим я подразумеваю, что нужно сказать: «уберите все, что не то, что я ищу», то есть, если вам нужен только «дин», вы можете сказать:</p><p>var strippedtext = ("1 ding?"). replace (/ [^ a-za-z]/g, '');</p><p>что в основном означает «удалить все, что является nog a, b, c, d .... z (любая буква).</p>

<p>это можно сделать без <code>regex</code>, что более эффективно:</p><pre><code>var questiontext = "1 ding ?" var index = 0; var num = ""; do { num += questiontext[index]; } while (questiontext[++index] >= "0" && questiontext[index] <= "9"); questiontext = questiontext.substring(num.length); </code></pre><p>и в качестве бонуса, он также хранит номер, который может быть полезен для некоторых людей.</p>