1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
regexp_simple: {
input: {
/rx/ig
}
expect_exact: "/rx/gi;"
}
regexp_slashes: {
input: {
/\\\/rx\/\\/ig
}
expect_exact: "/\\\\\\/rx\\/\\\\/gi;"
}
regexp_1: {
options = {
}
input: {
console.log(JSON.stringify("COMPASS? Overpass.".match(/([Sap]+)/ig)));
}
expect: {
console.log(JSON.stringify("COMPASS? Overpass.".match(/([Sap]+)/gi)));
}
expect_stdout: '["PASS","pass"]'
}
regexp_2: {
options = {
evaluate: true,
unsafe: true,
}
input: {
console.log(JSON.stringify("COMPASS? Overpass.".match(new RegExp("(pass)", "ig"))));
}
expect: {
console.log(JSON.stringify("COMPASS? Overpass.".match(/(pass)/gi)));
}
expect_stdout: '["PASS","pass"]'
}
unsafe_slashes: {
options = {
defaults: true,
unsafe: true
}
input: {
console.log(new RegExp("^https//"))
}
expect: {
console.log(/^https\/\//)
}
}
unsafe_nul_byte: {
options = {
defaults: true,
unsafe: true
}
input: {
console.log(new RegExp("\0"))
}
expect: {
console.log(/\0/)
}
}
double_escape: {
format = {
ascii_only: true
}
input: {
/\🏳0\🌈️\☺/
}
expect: {
/\ud83c\udff30\ud83c\udf08\ufe0f\u263a/
}
expect_stdout: true
}
inline_script: {
options = {}
beautify = {
inline_script: true,
comments: "all"
}
input: {
/* </script> */
/[</script>]/
}
expect_exact: '/* <\\/script> */\n/[<\\/script>]/;'
}
regexp_no_ddos: {
options = { unsafe: true, evaluate: true }
input: {
console.log(/(b+)b+/.test("bbb"))
console.log(RegExp("(b+)b+").test("bbb"))
}
expect: {
console.log(/(b+)b+/.test("bbb"))
console.log(RegExp("(b+)b+").test("bbb"))
}
expect_stdout: ["true", "true"]
}
|