public static async Task <string> StripJapanese(this string input) { //TODO: Add support for titles like Bakamitai ばかみたい (Romanized) if (WanaKana.IsJapanese(input)) { string converted = await GetTransliteration(input, false); input = converted; } //TODO: Fix romanization issues, like with the string "潜潜話 (Hisohiso Banashi)", which only contains kanji and is not detected as mixed else if (WanaKana.IsMixed(input) || WanaKana.IsKanji(input)) { //checks if title follows "romaji (japanese)" format //and keeps only romaji. if (input.Contains("(")) { string inside = Regex.Match(input, @"(?<=\()(.*?)(?=\))").Value; string outside = Regex.Replace(input, @" ?\(.*?\)", ""); if (ContainsJapanese(inside)) { input = outside; } else if (ContainsJapanese(outside)) { input = inside; } } } //Returns unchanged input if it doesn't follow format return(input); }
//[TestCase("≪偽括弧≫", new Regex("[≪≫]") ExpectedResult = true)] public bool IsJapanese(string input, Regex allowed = null) => WanaKana.IsJapanese(input, allowed);
public static bool ContainsJapanese(this string text) => WanaKana.IsMixed(text) || WanaKana.IsJapanese(text);
public void IsJapaneseAcceptsOptionalAllowedCharsRegex() { var isJapanese = WanaKana.IsJapanese("≪偽括弧≫", new Regex("[≪≫]")); Assert.True(isJapanese); }
public void IsJapaneseAcceptsOptionalAllowedChars() { var isJapanese = WanaKana.IsJapanese("≪偽括弧≫", '[', '≪', '≫', ']'); Assert.True(isJapanese); }
public void IsJapaneseResponsesMatch(string input, bool expectedResult) { Assert.Equal(expectedResult, WanaKana.IsJapanese(input)); }
public void EmptyReturnsFalse() { Assert.False(WanaKana.IsJapanese(string.Empty)); }
//[TestCase("≪偽括弧≫", new Regex("[≪≫]") ExpectedResult = true)] public Boolean IsJapanese(String input, Regex allowed = null) => WanaKana.IsJapanese(input, allowed);