UNPKG

string-similarity-plus

Version:

String similarity calculation with enhanced special character normalization

40 lines (32 loc) 1.48 kB
const { calculateStringSimilarity, findSimilarStrings } = require('./index'); // Test basic functionality console.log('Basic similarity tests:'); console.log('-----------------------'); const testCases = [ ["<h2>2. 無限供應肉類火鍋放題 - 牛摩</h2>", "<h2>2. 無限供應肉類火鍋放題 – 牛摩</h2>"] // CJK example ]; // Test the similarity testCases.forEach(([str1, str2]) => { const similarity = calculateStringSimilarity(str1, str2); console.log(`"${str1}" vs "${str2}": ${similarity.toFixed(2)}%`); }); // Test findSimilarStrings console.log('\nFinding similar strings:'); console.log('------------------------'); const content = [ "<h2>2. 無限供應肉類火鍋放題 – 牛摩</h2>", "<h2>Some other content</h2>", "<h2>無限供應火鍋放題牛摩</h2>", ]; const searchString = "<h2>2. 無限供應肉類火鍋放題 - 牛摩</h2>"; const matches = findSimilarStrings(searchString, content, 80); console.log(`Search string: "${searchString}"`); console.log('Matches:'); matches.forEach(match => console.log(`- "${match}"`)); // Test edge cases console.log('\nEdge cases:'); console.log('-----------'); console.log(`Empty strings: ${calculateStringSimilarity("", "")}%`); console.log(`One empty string: ${calculateStringSimilarity("test", "")}%`); console.log(`Identical strings: ${calculateStringSimilarity("test", "test")}%`); console.log(`Completely different: ${calculateStringSimilarity("abcdef", "ghijkl")}%`);