fix: Decode HTML entities in the test output (#111)
This commit is contained in:
		
				
					committed by
					
						 Mrugesh Mohapatra
						Mrugesh Mohapatra
					
				
			
			
				
	
			
			
			
						parent
						
							caf85cc353
						
					
				
				
					commit
					8de3a4c766
				
			
							
								
								
									
										27
									
								
								packages/learn/utils/decodeHTMLEntities.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								packages/learn/utils/decodeHTMLEntities.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| /* | ||||
|  * Converts HTML entity codes in a string to the characters they represent. | ||||
|  * | ||||
|  * Example: | ||||
|  * `decodeHTMLEntities('Beets & carrots');` | ||||
|  * will return "Beets & carrots". | ||||
|  * | ||||
|  * The regex makes sure we only replace the HTML entities in the string. | ||||
|  * For example, the regex would match "<" as well as ":". | ||||
|  * The decoding works by setting the innerHTML of a dummy element and then | ||||
|  * retrieving the innerText. Per the spec, innerText is a property that | ||||
|  * represents the "rendered" text content of an element. | ||||
|  * | ||||
|  * See: | ||||
|  * https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText | ||||
|  * https://developer.mozilla.org/en-US/docs/Glossary/Entity | ||||
|  * | ||||
|  */ | ||||
| const decodeHTMLEntities = str => { | ||||
|   const el = document.createElement('div'); | ||||
|   return str.replace(/\&[#0-9a-z]+;/gi, enc => { | ||||
|     el.innerHTML = enc; | ||||
|     return el.innerText; | ||||
|   }); | ||||
| }; | ||||
|  | ||||
| export default decodeHTMLEntities; | ||||
		Reference in New Issue
	
	Block a user