prasad sawant Ответов: 1

Как я могу получить определенное значение в своей программе ?


я заменяю свои письменные слова на оригинальный синтаксис javascript для меньшего количества записей и экономии времени, я приближаюсь к нему, но много проблем для новичка, я застрял здесь с методом RegExp (), где я просто знал, что как найти символы типа " \ \ ("или /\(/
но я не понимаю, почему код не работает, просто посмотрите мой сценарий и ответьте мне.

Что я уже пробовал:

<!DOCTYPE html>
<html>
<body>

<textarea type= "text" id = "in1" rows = "4">
</textarea>
<br>

<textarea type= "text" id = "in2" >
</textarea>

<script>

function replace()
{
/* this code will always show bottom line of textarea */
var ta = document.getElementById("in1");

ta.scrollTop = ta.scrollHeight;

var in2 = document.getElementById("in2").value;

/* this will replace all characters to onother characters */
var replaceChars =
{
"d.": "document.",
"b." : "body.",
"w\\(": "write(",
"wl\\(" : "writeln(",
"ce\\(" : "createElement(",
"ctn\\(" : "createTextNode(",
"ac\\(" : "appendChild("
};

var re = new RegExp(Object.keys(replaceChars).join("|"),"g");

var replaced = in2.replace(re ,function (match)
{return replaceChars[match];});

document.getElementById("in1").value = replaced;
};

/* if i type in second textarea "d.w();" it returns "document.undefined);" and i want "document.write();" how to solve this undefined problem */

</script>

</body>
</html>

1 Ответов

Рейтинг:
11

Patrice T

Ваша проблема в том, что Марш за w\\( является w( которого нет в вашем массиве. Совпадение отличается от регулярного выражения.

Еще одна ошибка:
d. и b. они не соответствуют "d" или "b", за которыми следует точка, они соответствуют "d" или "b", за которыми следует что-либо, буква, число, пробел ...

Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]


prasad sawant

хорошая рекомендация, но я хочу точный код объяснения, какую ссылку вы дали мне на все коды языка программирования perl, я не знаком с ним, я хочу код javascript, который я видел на w3schools.com но нет никакой сложной техники сопоставления, и если я наберу "w (" : "write (" , то моя страница будет пустой.

Patrice T

95% регулярных выражений perl совпадают с регулярными выражениями JS, и разница заключается только в расширенных функциях.
Вы должны понимать, что в большинстве случаев регулярное выражение и то, что оно соответствует, - это две разные вещи.
Например "Д" С "Д" И "Д1" "да" "д(" "д" "д%" ...