How to decode from:
\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28313\x29
to:
javascript:alert(313)
Does anyone know about coding please guide me, I will appreciate you a lot!
Thank you!
How to decode from:
\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28313\x29
to:
javascript:alert(313)
Does anyone know about coding please guide me, I will appreciate you a lot!
Thank you!
You could write a simple parser that converts Unicode code-points to equivalent characters.
const main = () => {
const convertBtn = document.querySelector('.convert');
convertBtn.addEventListener('click', onConvert);
triggerEvent(convertBtn, 'click');
};
const onConvert = e => {
const input = document.querySelector('.input');
const output = document.querySelector('.output');
output.value = parseUnicodeString(input.value);
};
const parseUnicodeString = unicodeSring => {
let result = '', buffer = null;
for (let i = 0; i < unicodeSring.length; i++) {
if (unicodeSring[i] === 'x') {
buffer = '';
} else if (/[0-9a-f]/.test(unicodeSring[i])) {
if (buffer != null) {
if (buffer.length === 1) {
result += parseCodePoint(buffer + unicodeSring[i]);
buffer = null;
} else {
buffer += unicodeSring[i];
}
} else {
result += unicodeSring[i];
}
}
}
if (buffer != null && buffer.length > 0) {
result += parseCodePoint(buffer);
}
return result;
}
const parseCodePoint = codePoint =>
String.fromCodePoint(parseInt(codePoint, 16));
const triggerEvent = (el, eventName, data) => {
let event;
if (window.CustomEvent && typeof window.CustomEvent === 'function') {
event = new CustomEvent(eventName, {detail: data});
} else {
event = document.createEvent('CustomEvent');
event.initCustomEvent(eventName, true, true, data);
}
el.dispatchEvent(event);
};
main();
body,html{width:100%;height:100%;margin:0;padding:0;background:#000;color:#fff}body{display:flex;flex-direction:column}button{background:#c46;border:thin solid #d26;color:#eee;padding:.125em;font-weight:700;cursor:pointer}button:hover{background:#f47;color:#fff}textarea{flex:1;background:#222;color:#eee;resize:none;border:none;outline:0;padding:.25em}
<textarea class="input">\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28313\x29</textarea>
<button class="convert">Convert</button>
<textarea class="output">
</textarea>
If you combine String.prototype.replace
with a regular expression, you can simply the logic above into a one-liner.
const main = () => {
const convertBtn = document.querySelector('.convert');
convertBtn.addEventListener('click', onConvert);
triggerEvent(convertBtn, 'click');
};
const onConvert = e => {
const input = document.querySelector('.input');
const output = document.querySelector('.output');
output.value = parseUnicodeString(input.value);
};
const parseUnicodeString = unicodeSring =>
unicodeSring.replace(/\\x([0-9a-f]{2})/ig, (match, codePoint) =>
String.fromCodePoint(parseInt(codePoint, 16)));
const triggerEvent = (el, eventName, data) => {
let event;
if (window.CustomEvent && typeof window.CustomEvent === 'function') {
event = new CustomEvent(eventName, {detail: data});
} else {
event = document.createEvent('CustomEvent');
event.initCustomEvent(eventName, true, true, data);
}
el.dispatchEvent(event);
};
main();
body,html{width:100%;height:100%;margin:0;padding:0;background:#000;color:#fff}body{display:flex;flex-direction:column}button{background:#c46;border:thin solid #d26;color:#eee;padding:.125em;font-weight:700;cursor:pointer}button:hover{background:#f47;color:#fff}textarea{flex:1;background:#222;color:#eee;resize:none;border:none;outline:0;padding:.25em}
<textarea class="input">\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28313\x29</textarea>
<button class="convert">Convert</button>
<textarea class="output">
</textarea>