<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="188640" data-post-id="188640">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="LostKobrakai" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/LostKobrakai/120/3072_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  LostKobrakai
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="achedeuzot" data-post="11" data-topic="34228">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/achedeuzot/48/13972_2.png" class="avatar"> achedeuzot:</div>
<blockquote>
<p>Why not but I’m not sure I’d be ready to package the database of all world postal codes into this library (and maintaining it up to date would also be a huge undertaking).</p>
</blockquote>
</aside>
<p>Yeah, see <a class="mention" href="/u/hauleth" rel="nofollow">@hauleth</a>’s answer. But as with emails there’s a huge difference between validating a postal by format (which is a sanity check at best) and actually validating a postal for being a correct (and existing) postal.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="188640" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ecto-commons-ecto-common-helper-functions-such-as-changeset-validators/34228/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-188640" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="188640"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="188676" data-post-id="188676">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Schultzer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Schultzer/120/4339_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Schultzer
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>Concerning  <code>EmailValidator</code> , indeed, the regular expression used is the one used by browsers to validate  <code>email</code>  type fields so it’s a bit stricter than the RFC 5322. I pondered for I while if i should include the “real” email regexp of the RFC 5322 but it accepts some very exotic email formats so I preferred to choose a “sane default” that most people would be comfortable with. I’d be happy to see a pull request with an improvement in the strictness of the validation (with various options). In any case, I’ll make the documentation more obvious about this and will try updating it in the upcoming releases.</p>
</blockquote>
<p>Email validation has been done before in the community, I would take a look at <a href="https://hexdocs.pm/pow/Pow.Ecto.Schema.Changeset.html#validate_email/1" class="inline-onebox" rel="noopener nofollow ugc">Pow.Ecto.Schema.Changeset — Pow v1.0.39</a> for a spec compliant unicode email validation.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="188676" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ecto-commons-ecto-common-helper-functions-such-as-changeset-validators/34228/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-188676" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="188676"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="188678" data-post-id="188678">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="achedeuzot" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/achedeuzot/120/13972_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  achedeuzot
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Schultzer" data-post="13" data-topic="34228">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/schultzer/48/4339_2.png" class="avatar"> Schultzer:</div>
<blockquote>
<p>Email validation has been done before in the community, I would take a look at <a href="https://hexdocs.pm/pow/Pow.Ecto.Schema.Changeset.html#validate_email/1" class="inline-onebox" rel="noopener nofollow ugc">Pow.Ecto.Schema.Changeset — Pow v1.0.39</a> for a spec compliant unicode email validation.</p>
</blockquote>
</aside>
<p>Nice stuff, I’ll add it to my list of improvements. Thanks <a class="mention" href="/u/schultzer" rel="nofollow">@Schultzer</a> <img src="https://forum.elixirforum.com/images/emoji/apple/ok_hand.png?v=15" title=":ok_hand:" class="emoji" alt=":ok_hand:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="188678" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ecto-commons-ecto-common-helper-functions-such-as-changeset-validators/34228/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-188678" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="188678"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="188682" data-post-id="188682">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="hauleth" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hauleth/120/18942_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  hauleth
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Seems that this is still not fully valid, as this do not allow <code>[::1]</code> as a domain part. Additionally it will allow <code>.foo.</code> as a domain, which is incorrect.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="188682" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ecto-commons-ecto-common-helper-functions-such-as-changeset-validators/34228/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-188682" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="188682"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-most-liked cat-most-liked" title="One of the top 3 liked posts in this thread!"></div>
  </section>
</div>
    <div class="postbit" id="189093" data-post-id="189093">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="achedeuzot" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/achedeuzot/120/13972_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  achedeuzot
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi folks !</p>
<p>I’ve published v0.2.0 with your feedbacks.</p>
<ul>
<li>I’ve improved the URLValidator by better documenting what is and what isn’t supported.</li>
<li>I’ve added all countries for the PostalCodeValidator (still no full database but a first sanity check of the format). The formats come from <a href="http://i18napis.appspot.com/" rel="noopener nofollow ugc">http://i18napis.appspot.com/</a>, recommended by the (now deprecated) unicode postal code database.</li>
<li>I’ve added better documentation to EmailValidator and an <code>opt-in</code> approach to which checks you want to apply. I also added <code>pow</code>’s package email validator and fixed some of the shortcomings found by <a class="mention" href="/u/hauleth" rel="nofollow">@hauleth</a>.</li>
<li>I’ve added the <code>validate_many</code> helper as it’s indeed common to validate multiple fields with the same options.</li>
</ul>
<p>As usual, happy to have your feedbacks, issues and pull requests <img src="https://forum.elixirforum.com/images/emoji/apple/slightly_smiling_face.png?v=15" title=":slightly_smiling_face:" class="emoji" alt=":slightly_smiling_face:" loading="lazy" width="20" height="20"></p>
<p>Cheers <img src="https://forum.elixirforum.com/images/emoji/apple/wave.png?v=15" title=":wave:" class="emoji" alt=":wave:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="189093" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ecto-commons-ecto-common-helper-functions-such-as-changeset-validators/34228/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-189093" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="189093"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-most-liked cat-most-liked" title="One of the top 3 liked posts in this thread!"></div>
  </section>
</div>
    <div class="postbit" id="189197" data-post-id="189197">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="danschultzer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/danschultzer/120/4942_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  danschultzer
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Pow Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="hauleth" data-post="15" data-topic="34228" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hauleth/48/18942_2.png" class="avatar"> hauleth:</div>
<blockquote>
<p>Seems that this is still not fully valid, as this do not allow <code>[::1]</code> as a domain part. Additionally it will allow <code>.foo.</code> as a domain, which is incorrect.</p>
</blockquote>
</aside>
<p>Good catch, thanks! Didn’t validate the domain properly.</p>
<p>I didn’t add IP addresses as it’s strongly discouraged with <a href="https://tools.ietf.org/html/rfc3696#section-3" rel="noopener nofollow ugc">RFC 3696</a>:</p>
<blockquote>
<p>The domain name can also be replaced by an IP address in<br>
square brackets, but that form is strongly discouraged except for<br>
testing and troubleshooting purposes.</p>
</blockquote>
<p><a class="mention" href="/u/achedeuzot" rel="nofollow">@achedeuzot</a> you may want to take a look at the changes in <a href="https://github.com/danschultzer/pow/issues/560" class="inline-onebox" rel="noopener nofollow ugc">Improve email validation · Issue #560 · pow-auth/pow · GitHub</a> as I didn’t validate the domain properly. Each DNS label should be validated. There are also some additional validation that I didn’t include such as checking for reserved domains (like <a href="http://example.com" rel="noopener nofollow ugc">example.com</a>, these domains can’t receive e-mail).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="189197" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ecto-commons-ecto-common-helper-functions-such-as-changeset-validators/34228/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-189197" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="189197"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="189322" data-post-id="189322">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="achedeuzot" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/achedeuzot/120/13972_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  achedeuzot
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks for the link to the pow issue link. I’ll update the validator check to better reflect your updates. It looks far better than mine which only addressed a few specific issues.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="189322" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ecto-commons-ecto-common-helper-functions-such-as-changeset-validators/34228/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-189322" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="189322"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="192257" data-post-id="192257">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="achedeuzot" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/achedeuzot/120/13972_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  achedeuzot
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi everyone !</p>
<p>Just to let you know I’ve released a new version with your feedbacks and an improvement:</p>
<ul>
<li>The <code>EmailValidator</code> has been updated to the latest <code>:pow</code> logic for better handling all emails use-cases, thanks <a class="mention" href="/u/danschultzer" rel="nofollow">@danschultzer</a> !</li>
<li>I’ve added a <code>PhoneNumberValidator</code> that uses <code>libphonenumber</code> under the hood</li>
<li>Some dependency updates &amp; compatibility with Elixir 1.11</li>
</ul>
<p>As usual, if you have feedback, suggestions etc. don’t hesitate. Cheers <img src="https://forum.elixirforum.com/images/emoji/apple/waving_hand.png?v=15" title=":waving_hand:" class="emoji" alt=":waving_hand:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="192257" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/ecto-commons-ecto-common-helper-functions-such-as-changeset-validators/34228/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-192257" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="192257"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>