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",
type: "boolean",
value: Regex.REGEX_CASE_INSENSITIVE
value: true
},
{
name: "Multiline matching",
name: "^ and $ match at newlines",
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",

View File

@ -71,16 +71,6 @@ const Regex = {
value: "[A-Za-z\\d/\\-:.,_$%\\x27\"()<>= !\\[\\]{}@]{4,}"
},
],
/**
* @constant
* @default
*/
REGEX_CASE_INSENSITIVE: true,
/**
* @constant
* @default
*/
REGEX_MULTILINE_MATCHING: true,
/**
* @constant
* @default
@ -100,15 +90,21 @@ const Regex = {
* @returns {html}
*/
runRegex: function(input, args) {
let userRegex = args[1],
const userRegex = args[1],
i = args[2],
m = args[3],
displayTotal = args[4],
outputFormat = args[5],
modifiers = "g";
s = args[4],
u = args[5],
a = args[6],
displayTotal = args[7],
outputFormat = args[8];
let modifiers = "g";
if (i) modifiers += "i";
if (m) modifiers += "m";
if (s) modifiers += "s";
if (u) modifiers += "u";
if (a) modifiers += "A";
if (userRegex && userRegex !== "^" && userRegex !== "$") {
try {
@ -275,7 +271,7 @@ const Regex = {
if (displayTotal)
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/NetBIOS.js";
import "./tests/operations/OTP.js";
import "./tests/operations/Regex.js";
import "./tests/operations/StrUtils.js";
import "./tests/operations/SeqUtils.js";

View File

@ -8,21 +8,6 @@
import TestRegister from "../../TestRegister.js";
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",
input: "testing23\n\ntesting123",