Added more modifiers to the Regex operation

This commit is contained in:
n1474335 2018-01-12 23:42:48 +00:00
parent f2c073798b
commit b07c014b48
4 changed files with 30 additions and 33 deletions

View File

@ -2322,12 +2322,27 @@ const OperationConfig = {
{ {
name: "Case insensitive", name: "Case insensitive",
type: "boolean", type: "boolean",
value: Regex.REGEX_CASE_INSENSITIVE value: true
}, },
{ {
name: "Multiline matching", name: "^ and $ match at newlines",
type: "boolean", type: "boolean",
value: Regex.REGEX_MULTILINE_MATCHING value: true
},
{
name: "Dot matches all",
type: "boolean",
value: false
},
{
name: "Unicode support",
type: "boolean",
value: false
},
{
name: "Astral support",
type: "boolean",
value: false
}, },
{ {
name: "Display total", name: "Display total",

View File

@ -71,16 +71,6 @@ const Regex = {
value: "[A-Za-z\\d/\\-:.,_$%\\x27\"()<>= !\\[\\]{}@]{4,}" value: "[A-Za-z\\d/\\-:.,_$%\\x27\"()<>= !\\[\\]{}@]{4,}"
}, },
], ],
/**
* @constant
* @default
*/
REGEX_CASE_INSENSITIVE: true,
/**
* @constant
* @default
*/
REGEX_MULTILINE_MATCHING: true,
/** /**
* @constant * @constant
* @default * @default
@ -100,15 +90,21 @@ const Regex = {
* @returns {html} * @returns {html}
*/ */
runRegex: function(input, args) { runRegex: function(input, args) {
let userRegex = args[1], const userRegex = args[1],
i = args[2], i = args[2],
m = args[3], m = args[3],
displayTotal = args[4], s = args[4],
outputFormat = args[5], u = args[5],
modifiers = "g"; a = args[6],
displayTotal = args[7],
outputFormat = args[8];
let modifiers = "g";
if (i) modifiers += "i"; if (i) modifiers += "i";
if (m) modifiers += "m"; if (m) modifiers += "m";
if (s) modifiers += "s";
if (u) modifiers += "u";
if (a) modifiers += "A";
if (userRegex && userRegex !== "^" && userRegex !== "$") { if (userRegex && userRegex !== "^" && userRegex !== "$") {
try { try {
@ -275,7 +271,7 @@ const Regex = {
if (displayTotal) if (displayTotal)
output = "Total found: " + total + "\n\n" + output; output = "Total found: " + total + "\n\n" + output;
return output; return output.slice(0, -1);
}, },
}; };

View File

@ -30,6 +30,7 @@ import "./tests/operations/MS.js";
import "./tests/operations/PHP.js"; import "./tests/operations/PHP.js";
import "./tests/operations/NetBIOS.js"; import "./tests/operations/NetBIOS.js";
import "./tests/operations/OTP.js"; import "./tests/operations/OTP.js";
import "./tests/operations/Regex.js";
import "./tests/operations/StrUtils.js"; import "./tests/operations/StrUtils.js";
import "./tests/operations/SeqUtils.js"; import "./tests/operations/SeqUtils.js";

View File

@ -8,21 +8,6 @@
import TestRegister from "../../TestRegister.js"; import TestRegister from "../../TestRegister.js";
TestRegister.addTests([ TestRegister.addTests([
{
name: "Regex, non-HTML op",
input: "/<>",
expectedOutput: "/<>",
recipeConfig: [
{
"op": "Regular expression",
"args": ["User defined", "", true, true, false, "Highlight matches"]
},
{
"op": "Remove whitespace",
"args": [true, true, true, true, true, false]
}
],
},
{ {
name: "Diff, basic usage", name: "Diff, basic usage",
input: "testing23\n\ntesting123", input: "testing23\n\ntesting123",