用javascript创建正则表达式
Creating a regular expression in javascript
我正在尝试进行表单验证,检查用户输入的输入是否与正则表达式匹配,而不是表单应该经过的验证。目前,我正在尝试验证名称字段,这样即使用户输入了至少2-15个字符,也可以包含空格。不应该是/^''w''s{2,15}$/;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Bottles Form</title>
<link rel="stylesheet" type="text/css" href="./css/form.css">
<script type="text/javascript">
function validFirstName() {
var fName = document.getElementById("customerName").value;
var regex = /^'w{2,15}$/;
if (regex.test(fName)) {
document.getElementById("firstNameAlert").innerHTML = "<span class='valid'>Valid</span>";
return (true);
} else {
document.getElementById("firstNameAlert").innerHTML = "<span class='error'>Error. First Name must be within 2 to 15 characters</span>";
return (false);
}
}
function formCalculator() {
const SALESTAX = .0825;
var userName = document.getElementById("customerName").value;
var quantity = document.getElementById("quantityBottle").value;
var costBottle = document.getElementById("costBottle").value;
var totalBottle = quantity * costBottle;
var discount = 0;
var discountedTotal = 0;
var taxTotal = totalBottle * SALESTAX;
var orderTotal = totalBottle + taxTotal;
//var orderWithDiscount = discountedTotal + taxTotal;
if(parseInt(quantity) > 10 && parseInt(quantity) <= 19) {
discount = .10;
totalBottle = totalBottle - (totalBottle * discount);
}
orderTotal.value = "$" + orderTotal.toFixed(2);
document.getElementById("result").innerHTML = "Hello " + userName + " - Your order of " + quantity + " bottles, costs $" + orderTotal.toFixed(2) + ", plus tax.";
}
</script>
</head>
<body>
<h1>Bottles Form</h1>
<form action="" method="post" enctype="multipart/form-data" name="wigetCalc">
<input name="customerName" id="customerName" type="text" size="20" onblur="validFirstName();"/> - <span id="firstNameAlert">First Name</span><br />
<input name="quantityBottle" id="quantityBottle" type="text" value="0" size="20" maxlength="3" /> Bottle Order Quantity<br />
<input name="costBottle" id="costBottle" type="text" value="5.31" size="20" readonly="readonly" /> Bottle Cost<br />
<p class ="coloredBox" onclick="formCalculator();">Submit</span></p>
<div id="result"></div>
</form>
</body>
</html>
量化符匹配前面的标记,这是当前正则表达式中的一个空格。因此,您的正则表达式匹配一个后面跟着2-15个空格的字母。您希望使用字符集来匹配字母和空格(方括号)的任何组合。
/^['w's]{2,15}$/
请参阅:http://www.regular-expressions.info/charclass.html
为什么不直接使用长度?
var fName = document.getElementById("customerName").value;
if (fName.length >= 2 && fName.length <= 15) {
document.getElementById("firstNameAlert").innerHTML = "<span class='valid'>Valid</span>";
} else {
document.getElementById("firstNameAlert").innerHTML = "<span class='error'>Error. First Name must be within 2 to 15 characters</span>";
}
相关文章:
- 正则表达式(JavaScript),用于创建数字必须大于x的数据验证
- 如何在javascript中创建动态正则表达式
- 谷歌浏览器模式正则表达式在使用setCustomValidity动态创建表单时不起作用
- 如何创建一个像SQL十进制类型一样匹配(p,s)精度和小数位数的正则表达式
- 如何创建一个正则表达式来拆分行,除非有斜杠
- 使用变量中的 gi 标志创建正则表达式
- 由表达式文本创建的正则表达式是否共享单个实例
- 从对象键创建正则表达式
- 创建包含正则表达式匹配中所有组的数组的有效解决方案
- 从字符串创建的 Javascript 正则表达式 - 为什么它不起作用
- 基于输入的正则表达式创建
- 如何创建具有 2 个可能条件的正则表达式
- 如何创建正则表达式 查找 JS 文件(或 JSON)中的所有字符串
- 在正则表达式中创建第 n 级嵌套模式的算法
- 如何创建不允许分号,冒号单引号和双引号的正则表达式
- 如何正确创建这个正则表达式,jquery
- 创建一个像 WordPress 一样读取模式的正则表达式
- 如何从字符串创建正则表达式
- 使用正则表达式创建HTML标记
- 正则表达式创建