2014-01-07 2 views
0

код в вопрос состоит в следующем:В javascript, как манипулировать многострочной строкой ввода пользователем?

<head> 
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    <script> 
    var convert = function(){ 
     var str = $('#input')[0].value; 
     n=str.replace("p","div"); 
     $("#output")[0].value = n; 
    } 
    </script> 
    </head> 
    <body> 
    <textarea style="width:600px;height:800px;float:left" id="input"></textarea> 
    <textarea style="width:600px;height:800px" id="output"></textarea> 
    <button onclick="convert();" style="width:60px;height=40px">convert</button> 

Я намерен использовать этот код, чтобы получить информацию от пользователей, и заменить все «р» с в нем с «DIV». Однако, если вход имеет несколько линий, выход будет точно таким же, как и вход. Поэтому я пошел искать способы манипулирования многострочными строками в javascript. Я нашел это. но они в основном о том, как создать новую строковую переменную с известными многострочными строками, и ни одна из них не полезна для моей проблемы.

Кажется, что пользовательская строка ввода нескольких строк была успешно назначена на str в функции, проблема в str.replace() не работает, как я ожидаю. Это потому, что str является многострочной строкой? (И является ли многострочная строка (я даже не уверен в этом)?) Если да, как я могу это сделать?

+0

Кстати, похоже, что вы не приняли ответ на любой из вопросов вы вывешенные на переполнение стека. Это хорошая вещь, чтобы делать и награждать вас точками репутации, также! Просто нажмите галочку слева от вашего любимого ответа на сообщение. Подробнее об этом здесь: http://stackoverflow.com/tour – m59

ответ

0

Вы ищете глобальную замену?

n=str.replace(/p/g,"div"); 

Live demo here (click). Все с «р», напечатанные на вход не будут преобразованы в «ДИВ», независимо от того, какой линии они находятся.

Вот некоторые документы по str.replace(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

+0

Благодарим вас за быстрый ответ, дающий мое первое согласие на вас. – shenkwen

+0

Так что мой код заменял только первое появление «р», но не всех. Я даже не осознавал этого и думал, что он не работает вообще из-за многострочной строки. В любом случае, я использую ваш код, и он работает отлично. Но здесь возникает новый вопрос: я прочитал метод replace() и, соответственно, изменил свой код на n = str.replace («p», «div», «g»), но все же, только первое появление «p» заменяется. Что пошло не так? Еще раз спасибо. – shenkwen

+0

ОК. У стандартной замены() нет третьего параметра, я понимаю. – shenkwen

Смежные вопросы