我是Thymeleaf的新手,曾在网上搜索过,因此使用了html正则表达式。我没有将th:object传递给我的前端这个页面,因此我想要的是在表单输入中使用pattern属性处理验证。如果他们没有输入文件的扩展名,请警告用户。 (在这种情况下为“.xml”)。所以我想看看字符串是否包含子字符串。
然而,无法理解为什么以下失败。 (使用带有 pattern =“/ xml /”的fileName字段,因为正在检查正则表达式的静态值。还尝试了 th:pattern 但没有运气。)
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout" layout:decorator="@{layouts/main}">
<div layout:fragment="content" class="container">
<div class="page-header">
<h2>Add New Project</h2>
</div>
<!-- multistep form -->
<div id="msform">
<!-- progressbar -->
<ul id="progressbar">
<li class="active">Project Details</li>
<li>Choose operations</li>
<li>Save operations</li>
<li>project saved</li>
</ul>
<form id="project-details" class="project" method="post">
<h2 class="fs-title">Project Details</h2>
<h3 class="fs-subtitle">This is step 1</h3>
<input type="text" th:field="${testSuitProject.name}" placeholder="Project Name" />
<input type="text" th:field="${testSuitProject.endpoint}" placeholder="Service End Point" />
<input type="text" th:field="${testSuitProject.fileName}" placeholder="FileName ex: sample_project.xml" pattern="/xml/" />
<input type="submit" name="next" id="btn-first" class="next action-button" value="Next" />
</form>
</div>
</div>
任何建议表示赞赏。
答案 0 :(得分:0)
你的正则表达式完全错了。要将字符串与“.xml”匹配结束:
<input type="text" placeholder="FileName ex: sample_project.xml" pattern=".*\.xml" />
.*
=匹配任何字符(在字符串的开头)。
\.
=一个文字点,因为点表示正则表达式中的任何字符。
(也许你会混淆JavaScript,其中reg表达式被/
包围:es来创建一个正则表达式对象。)