softare development

How to Filter Vulgar Words in React Native

If you’re building a social, chat, or comment-based mobile app using React Native, protecting your users from offensive or vulgar language is crucial for maintaining a safe environment.

In this article, you’ll learn how to filter out vulgar or inappropriate words from user-generated content using simple and effective strategies in React Native.

See How to Toggle Password Visibility in React Native

Why Filter Vulgar Words?

Offensive language can:

  • Harm the user experience.
  • Violate app store policies (Google Play, Apple App Store).
  • Damage your brand’s reputation.
  • Lead to account bans or user complaints.

Tools & Libraries to Use

There are several approaches to profanity filtering, but we’ll explore the most beginner-friendly one using:

  • bad-words: A lightweight JavaScript filter for bad words.
  • A custom word blacklist (optional).

Step 1: Install the bad-words Library

npm install bad-words

or

yarn add bad-words

Step 2: Filter Input Text

Let’s create a function to filter text before it’s submitted or displayed:

import Filter from 'bad-words';

const filter = new Filter();

export const cleanText = (text: string): string => {
  return filter.clean(text);
};

Example Usage in a Chat App

import React, { useState } from 'react';
import { View, TextInput, Button, Text, StyleSheet } from 'react-native';
import { cleanText } from './filterService'; // assume you created this function

export default function MessageInput() {
  const [input, setInput] = useState('');
  const [submitted, setSubmitted] = useState('');

  const handleSend = () => {
    const cleaned = cleanText(input);
    setSubmitted(cleaned);
    setInput('');
  };

  return (
    <View style={styles.container}>
      <TextInput
        style={styles.input}
        value={input}
        onChangeText={setInput}
        placeholder="Type your message..."
      />
      <Button title="Send" onPress={handleSend} />
      <Text style={styles.output}>Filtered: {submitted}</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  container: { padding: 20 },
  input: {
    borderWidth: 1,
    borderColor: '#ccc',
    marginBottom: 10,
    padding: 10,
    fontSize: 16,
  },
  output: {
    marginTop: 10,
    fontStyle: 'italic',
    color: '#333',
  },
});

Conclusion

Filtering vulgar words in React Native is easy using the bad-words package. Whether you’re building a chat app, comments system, or forum, adding a profanity filter helps you keep your app clean and community-friendly.

Recent Posts

What is Functional Programming (FP)?

Functional Programming (FP) is a programming style of building the structure and elements such that…

1 day ago

Benefits of Infinite Scroll

Infinite scroll is a web design technique where content automatically loads continuously as the user scrolls down…

4 days ago

What Exactly is Docker?

Imagine moving to a new apartment. Instead of disassembling your furniture, rebuilding pipes, and rewiring…

1 week ago

Event Delegation in JavaScript

Imagine you’re the principal of a large school. Every day, students (like buttons, links, or…

1 week ago

The DRY Concept (Don’t Repeat Yourself)

You know that thing you do? Where you copy a chunk of code, paste it…

2 weeks ago

What Truly Makes a Great Software Developer

We've all seen them. The developers who seem to effortlessly untangle complex problems, whose code…

2 weeks ago