diff --git a/wax-prosemirror-components/src/components/findAndReplace/helpers.js b/wax-prosemirror-components/src/components/findAndReplace/helpers.js
index 3860959bc1553df32b014a4cbc2f0dc34053feef..88c373fec3bed0d535be2d4a171f2d40d5015b5f 100644
--- a/wax-prosemirror-components/src/components/findAndReplace/helpers.js
+++ b/wax-prosemirror-components/src/components/findAndReplace/helpers.js
@@ -37,7 +37,7 @@ const findMatches = (doc, searchValue, matchCase) => {
     }
   });
   mergedTextNodes.forEach(({ text, pos }) => {
-    const search = RegExp(searchValue, matchCase ? 'gu' : 'gui');
+    const search = RegExp(escapeRegExp(searchValue), matchCase ? 'gu' : 'gui');
     let m;
     // eslint-disable-next-line no-cond-assign
     while ((m = search.exec(text))) {
@@ -54,6 +54,10 @@ const findMatches = (doc, searchValue, matchCase) => {
   return results;
 };
 
+const escapeRegExp = string => {
+  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+};
+
 const getMatchesByView = (views, searchValue, matchCase) => {
   let allResults = 0;
   each(views, (singleView, viewId) => {
diff --git a/wax-prosemirror-plugins/src/findAndReplace/FindAndReplacePlugin.js b/wax-prosemirror-plugins/src/findAndReplace/FindAndReplacePlugin.js
index 3eafc64377729d445f34d4c76e60d6c01d5eee67..403d392932c4e2901aae2b0ef8081354e384e407 100644
--- a/wax-prosemirror-plugins/src/findAndReplace/FindAndReplacePlugin.js
+++ b/wax-prosemirror-plugins/src/findAndReplace/FindAndReplacePlugin.js
@@ -42,7 +42,7 @@ const findMatches = (doc, searchValue) => {
     }
   });
   mergedTextNodes.forEach(({ text, pos }) => {
-    const search = RegExp(searchValue, matchCase ? 'gu' : 'gui');
+    const search = RegExp(escapeRegExp(searchValue), matchCase ? 'gu' : 'gui');
     let m;
     // eslint-disable-next-line no-cond-assign
     while ((m = search.exec(text))) {
@@ -59,6 +59,10 @@ const findMatches = (doc, searchValue) => {
   return results;
 };
 
+const escapeRegExp = string => {
+  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+};
+
 export default props => {
   return new Plugin({
     key: findAndReplacePlugin,