public static Javascript.Constant replace(Javascript.Constant _this, Javascript.Constant[] arguments, Javascript.Scope scope) { var exp = (Javascript.Object)_this; var str = (Javascript.String)arguments[0]; var replacement = (Javascript.String)arguments[1]; var source = ((Javascript.String)exp.Get("source")).Value; var options = GetOptions(exp); var regex = new Regex(source, options); return(new Javascript.String(regex.Replace(str.Value, replacement.Value, (exp.Get <Javascript.Boolean>("global")).Value ? -1 : 1))); }
public static Javascript.Constant constructor(Javascript.Constant _this, Javascript.Constant[] arguments, Javascript.Scope scope) { var thisObject = (Javascript.Object)_this; thisObject.Set("source", (Javascript.String)arguments[0]); var flags = arguments.Length > 1 ? (Javascript.String)arguments[1] : new Javascript.String(""); thisObject.Set("flags", flags); thisObject.Set("global", new Javascript.Boolean(flags.Value.IndexOf(Javascript.Tokens.RegexGlobal) != -1)); thisObject.Set("ignoreCase", new Javascript.Boolean(flags.Value.IndexOf(Javascript.Tokens.RegexIgnoreCase) != -1)); thisObject.Set("multiline", new Javascript.Boolean(flags.Value.IndexOf(Javascript.Tokens.RegexMultiLine) != -1)); thisObject.Set("unicode", new Javascript.Boolean(flags.Value.IndexOf(Javascript.Tokens.RegexUnicode) != -1)); thisObject.Set("sticky", new Javascript.Boolean(flags.Value.IndexOf(Javascript.Tokens.RegexSticky) != -1)); return(Javascript.Static.Undefined); }
public static Javascript.Constant test(Javascript.Constant _this, Javascript.Constant[] arguments, Javascript.Scope scope) { if (arguments[0] is Javascript.Undefined) { arguments[0] = new Javascript.String(""); } return(new Javascript.Boolean(!(match(_this, arguments, scope) is Javascript.Null))); }
public static Javascript.Constant match(Javascript.Constant _this, Javascript.Constant[] arguments, Javascript.Scope scope) { var exp = (Javascript.Object)_this; var str = ((Javascript.String)arguments[0]).Value; var source = ((Javascript.String)exp.Get("source")).Value; var options = GetOptions(exp); var result = new List <string>(); if ((exp.Get <Javascript.Boolean>("global")).Value) { var matches = Regex.Matches(str, source, options); if (matches.Count == 0) { return(Javascript.Static.Null); } foreach (Match match in matches) { result.Add(match.Value); } } else { var match = Regex.Match(str, source, options); if (!match.Success) { return(Javascript.Static.Null); } result.Add(match.Value); foreach (Group group in match.Groups) { result.Add(group.Value); } } return(Tool.ToArray(result, scope)); }
public static Javascript.Constant split(Javascript.Constant _this, Javascript.Constant[] arguments, Javascript.Scope scope) { var exp = (Javascript.Object)_this; var str = (Javascript.String)arguments[0]; var source = ((Javascript.String)exp.Get("source")).Value; var options = GetOptions(exp); var result = Regex.Split(str.Value, source, options); return(Tool.ToArray(result, scope)); }
public static Javascript.Constant search(Javascript.Constant _this, Javascript.Constant[] arguments, Javascript.Scope scope) { var exp = (Javascript.Object)_this; var str = (Javascript.String)arguments[0]; var source = ((Javascript.String)exp.Get("source")).Value; var options = GetOptions(exp); var match = Regex.Match(str.Value, source, options); if (match.Success) { return(new Javascript.Number(match.Index)); } else { return(new Javascript.Number(-1)); } }
public static Javascript.Constant parse(Javascript.Constant _this, Javascript.Constant[] arguments, Javascript.Scope scope) { var s = ((Javascript.String)arguments[0]).Value.Trim(); if (s.Length == 0) { return(Javascript.Static.Undefined); } if (s[0] == '{') { var json = JsonParser.StringToJsonObject(s); return(Convert.JsonToObject(json, scope)); } else if (s[0] == '[') { var json = JsonParser.StringToJsonList(s); return(Convert.JsonToValue(json, scope)); } return(Javascript.Static.Undefined); }
public static Javascript.Constant stringify(Javascript.Constant _this, Javascript.Constant[] arguments, Javascript.Scope scope) { if (arguments.Length == 0) { return(Javascript.Static.Undefined); } var beautify = arguments.Length > 1 ? Tool.GetArgument <Javascript.Boolean>(arguments, 1, "JSON.stringify").Value : false; var json = Convert.ValueToJson(arguments[0], scope); return(new Javascript.String(JsonParser.ValueToString(json, beautify))); }