Merge pull request #4357 from Nightfirecat/fix-remove-tags
text: Fix removeTags for isolated < and > chars
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018, Joshua Filby <joshua@filby.me>
|
* Copyright (c) 2018, Joshua Filby <joshua@filby.me>
|
||||||
|
* Copyright (c) 2018, Jordan Atwood <jordan.atwood423@gmail.com>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -24,11 +25,14 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.util;
|
package net.runelite.client.util;
|
||||||
|
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A set of utilities to use when dealing with text.
|
* A set of utilities to use when dealing with text.
|
||||||
*/
|
*/
|
||||||
public class Text
|
public class Text
|
||||||
{
|
{
|
||||||
|
private static final Pattern TAG_REGEXP = Pattern.compile("<[^>]*>");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes all tags from the given `str`.
|
* Removes all tags from the given `str`.
|
||||||
@@ -38,28 +42,7 @@ public class Text
|
|||||||
*/
|
*/
|
||||||
public static String removeTags(String str)
|
public static String removeTags(String str)
|
||||||
{
|
{
|
||||||
StringBuilder builder = new StringBuilder(str.length());
|
return TAG_REGEXP.matcher(str).replaceAll("");
|
||||||
boolean inTag = false;
|
|
||||||
|
|
||||||
for (int i = 0; i < str.length(); i++)
|
|
||||||
{
|
|
||||||
char currentChar = str.charAt(i);
|
|
||||||
|
|
||||||
if (currentChar == '<')
|
|
||||||
{
|
|
||||||
inTag = true;
|
|
||||||
}
|
|
||||||
else if (currentChar == '>')
|
|
||||||
{
|
|
||||||
inTag = false;
|
|
||||||
}
|
|
||||||
else if (!inTag)
|
|
||||||
{
|
|
||||||
builder.append(currentChar);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return builder.toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ public class TextTest
|
|||||||
assertEquals("Zezima (level-126)", Text.removeTags("<col=ffffff><img=2>Zezima<col=00ffff> (level-126)"));
|
assertEquals("Zezima (level-126)", Text.removeTags("<col=ffffff><img=2>Zezima<col=00ffff> (level-126)"));
|
||||||
assertEquals("", Text.removeTags("<colrandomtext test>"));
|
assertEquals("", Text.removeTags("<colrandomtext test>"));
|
||||||
assertEquals("Not so much.", Text.removeTags("<col=FFFFFF This is a very special message.</col>Not so much."));
|
assertEquals("Not so much.", Text.removeTags("<col=FFFFFF This is a very special message.</col>Not so much."));
|
||||||
|
assertEquals("Use Item -> Man", Text.removeTags("Use Item -> Man"));
|
||||||
|
assertEquals("a < b", Text.removeTags("a < b"));
|
||||||
assertEquals("Remove no tags", Text.removeTags("Remove no tags"));
|
assertEquals("Remove no tags", Text.removeTags("Remove no tags"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user