Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   найти и заменить в строке двойные кавычки на 2 одинарные (https://javascript.ru/forum/css-html/44888-najjti-i-zamenit-v-stroke-dvojjnye-kavychki-na-2-odinarnye.html)

jeka 05.02.2014 16:51

найти и заменить в строке двойные кавычки на 2 одинарные
 
Ребят помогите заменить в строке двойные кавычки на 2 одинарные

danik.js 05.02.2014 17:12

http://javascript.ru/string/replace

jeka 05.02.2014 18:33

можно пример то непойму)

danik.js 05.02.2014 18:36

Цитата:

Сообщение от jeka
можно пример то непойму

По ссылке есть примеры:nono:

jeka 05.02.2014 18:53

replace(/"([^"]+)"/g, ''''$1''''); так заменяет только две одинарные кавычки не ставит(((((

рони 05.02.2014 19:23

jeka,
alert('если 2 двойные это "" а две одинарные это \'\' то так и пишите'.replace(/""/g,"''"))

dima*** 05.02.2014 20:07

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Документ без названия</title>
	</head>
	
    <body>

<script>
//var a=document.getElementsByTagName('p')[0].innerHTML;
str='"Сидел" "в" "траве" "кузнечик"."Совсем" "как" "огуречик" зелёненький.';
//b=str.replace(/"/g,'''');
b=str.replace(/"/g,"''");
document.write(b);

</script>

</body>
</html>



Рони,уже ответил.
Но,нюанс,если сделать так b=str.replace(/"/g,'''');-то работать не будет.

danik.js 05.02.2014 20:16

Цитата:

Сообщение от dima***
то работать не будет

Ну это само собой. А почему это должно работать? У тебя идут в коде две пустые строки подряд: '' и '' - это синтаксическая ошибка.
Нужно экранировать кавычки: '\'\''

dima*** 05.02.2014 20:33

Просто хотел помочь:)

jeka 06.02.2014 11:53

Спасибо большое за помощь решил проблему так
.replace(/"([^"]+)"/g, ''&lsquo;&lsquo;$1&rsquo;&rsquo;'')

jeka 06.02.2014 12:43

а блин .replace(/"([^"]+)"/g, ''&lsquo;&lsquo;$1&rsquo;&rsquo;'')
- теперь такие символы html в базу заливаються(;&rsquo;

danik.js 06.02.2014 13:32

jeka, а чем не устраивает вариант http://javascript.ru/forum/css-html/...tml#post296115 ?

jeka 06.02.2014 13:43

.replace(/""/g,"''"))
если вы про этот вариант так не работает при отображении в html

danik.js 06.02.2014 13:47

Цитата:

Сообщение от jeka
так не работает при отображении в html

Чего чего? Показывай код целиком. Рассказывай че ты там мудришь.

jeka 06.02.2014 15:17

Вот пример стряпал аналогичный
declare
toy  tuyscatalog.name%type;
begin

select name into toy from tuyscatalog
htmldoc('
<html>
<head></head>
<body>
 <input type="text" size="40" name = "_texttoy"value ="'||toy||'">-- тут отображение на страничку с поля которое вытаскиваеться с бд 
 <button onclick="ok()">Ok</button>
</body>
тут при нажатии кнопки ок специально сохраняю значения в форме

<script>
function ok() {
var area=new Object();
area._texttoy=_texttoy.value.replace(/"([^"]+)"/g, ''&lsquo;&lsquo;$1&rsquo;&rsquo;'');
window.returnValue=area;
window.close();
}
</script>
</html>')
end;

jeka 06.02.2014 15:18

Заливка в базу происходит при нажатии кнопки на основной странице

danik.js 06.02.2014 16:13

Дык из этого кода неясно зачем ты делаешь замену кавычек...

jeka 06.02.2014 19:42

В отображении в html кавычки обрезаються вот и хочу их заменить на 2 одинарные тогда все работает)

danik.js 06.02.2014 19:50

Цитата:

Сообщение от jeka
В отображении в html кавычки обрезаються

С какой это стати?
Цитата:

||toy||
Эта конструкция выводит значение из toy? А при этом двойные кавычки экранируются (заменяются на &quot; )? Если нет, и в этом весь косяк, то причем тут JS? JS оперирует тем, что предоставляет HTML-парсер браузера.
Если ты не заэкранировал кавычки, то парсер не может разобрать код корректно. Соответственно JS тоже тут ничем не поможет!

danik.js 06.02.2014 19:52

jeka, тема растянулась на две страницы, а все из-за твоей упоротости. Ты не мог сразу описать проблему внятно?


Часовой пояс GMT +3, время: 06:44.