diff --git a/package.json b/package.json
index 055b3b0..09b1809 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
   "license": "MIT",
   "main": "index.js",
   "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1"
+    "test": "jest"
   },
   "repository": {
     "type": "git",
@@ -20,6 +20,7 @@
     "loader-utils": "^1.1.0"
   },
   "devDependencies": {
+    "jest": "^24.1.0",
     "webpack": "^2.2.1"
   }
 }
diff --git a/src/loader.js b/src/loader.js
index 053720f..5c42618 100644
--- a/src/loader.js
+++ b/src/loader.js
@@ -5,7 +5,7 @@ const { tag, prefixTag } = require('./tag-map');
 
 function replaceTag(source, tagMap) {
     Object.keys(tagMap).forEach(i => {
-        source = source.replace(new RegExp(`<${i}(?!-)`, 'g'), `<${tagMap[i]}`)
+        source = source.replace(new RegExp(`<${i}(?![-a-zA-Z])`, 'g'), `<${tagMap[i]}`)
             .replace(new RegExp(`<\/${i}>`, 'g'), `<\/${tagMap[i]}>`);
     })
     return source;
diff --git a/test/loader.test.js b/test/loader.test.js
new file mode 100644
index 0000000..06cad67
--- /dev/null
+++ b/test/loader.test.js
@@ -0,0 +1,24 @@
+const originLoader = require('../src/loader')
+
+const baseLoaderContext = {
+  cacheable: () => { },
+}
+const normalLoader = originLoader.bind({
+  ...baseLoaderContext,
+  query: '?prefix=false',
+})
+
+const prefixLoader = originLoader.bind({
+  ...baseLoaderContext,
+  query: '?prefix=true',
+})
+
+test('替换该替换的标签', () => {
+  expect(normalLoader('<Circle></Circle>')).toBe('<i-circle></i-circle>')
+  expect(prefixLoader('<i-table></i-table>')).toBe('<Table></Table>')
+})
+
+test('不替换该不替换的标签', () => {
+  expect(normalLoader('<CircleLoading></CircleLoading>')).toBe('<CircleLoading></CircleLoading>')
+  expect(prefixLoader('<i-table-header></i-table-header>')).toBe('<i-table-header></i-table-header>')
+})
\ No newline at end of file