我想使用JavaScript(可以使用jQuery)进行一些客户端验证来检查字符串是否与正则表达式匹配:
^([a-z0-9]{5,})$
Run Code Online (Sandbox Code Playgroud)
理想情况下,它将是一个返回true或false的表达式.
我是一个JavaScript新手,确实match()做我需要的东西?它似乎检查字符串的一部分是否匹配正则表达式,而不是整个事物.
当我使用全局标志和不区分大小写的标志时,这个正则表达式有什么问题?查询是用户生成的输入.结果应该是[true,true].
var query = 'Foo B';
var re = new RegExp(query, 'gi');
var result = [];
result.push(re.test('Foo Bar'));
result.push(re.test('Foo Bar'));
// result will be [true, false]
Run Code Online (Sandbox Code Playgroud)
var reg = /^a$/g;
for(i = 0; i++ < 10;)
console.log(reg.test("a"));Run Code Online (Sandbox Code Playgroud)
我想知道一个字符串是以指定的字符/字符串开头还是以jQuery结尾.
例如:
var str = 'Hello World';
if( str starts with 'Hello' ) {
alert('true');
} else {
alert('false');
}
if( str ends with 'World' ) {
alert('true');
} else {
alert('false');
}
Run Code Online (Sandbox Code Playgroud)
如果没有任何功能那么任何替代方案?
我正在处理JavaScript上的性能问题.所以我只想问:检查字符串是否包含另一个子字符串的最快方法是什么(我只需要布尔值)?您能否提出您的想法和示例代码段?
检查cookie是否存在的好方法是什么?
条件:
Cookie存在,如果
cookie1=;cookie1=345534;
//or
cookie1=345534;cookie1=;
//or
cookie1=345534;
Run Code Online (Sandbox Code Playgroud)
如果,Cookie不存在
cookie=;
//or
<blank>
Run Code Online (Sandbox Code Playgroud) 可能重复:
在JavaScript中模拟SQL LIKE
JavaScript中的like运算符是否与SQL中的运算符类似?感谢解释和示例.
考虑一个需要检查给定字符串是否全部为大写字母的JavaScript方法.输入字符串是人的名字.
当前的算法是检查任何小写字母.
var check1 = "Jack Spratt";
var check2 = "BARBARA FOO-BAR";
var check3 = "JASON D'WIDGET";
var isUpper1 = HasLowercaseCharacters(check1);
var isUpper2 = HasLowercaseCharacters(check2);
var isUpper3 = HasLowercaseCharacters(check3);
function HasLowercaseCharacters(string input)
{
//pattern for finding whether any lowercase alpha characters exist
var allLowercase;
return allLowercase.test(input);
}
Run Code Online (Sandbox Code Playgroud)
正则表达式是最好的方式去这里?
您将使用什么模式来确定字符串是否包含任何小写字母字符?
我正在写一个包含大量javascript的注册表单.在编写基本功能以检查某些字符串的格式时,我遇到了这个问题(我试图自己解决它,但没有运气).在这个简化版本中,我有三个功能:一个用于检查电话号码的格式,第二个用于检查电子邮件的格式,第三个用于组合这两个功能以使其更清晰.这是代码:
<html>
<head>
<meta charset="utf-8">
<script>
function filterPhone(phone){
var pattern = "/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/";
return pattern.test(phone);
}
function filterEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
function checkForm(){
var puh = document.getElementById("puh").value;
var email = document.getElementById("email").value;
if(filterPhone(puh) && filterEmail(email)){
alert("It works");
return true;
} else {
alert("Check the format!");
return false;
}
}
</script>
</head>
<body>
<form method="post" action="" name="regForm" onsubmit="return checkForm()">
<input type="text" name="puh" id="puh" placeholder="Phonenumber"><br>
<input type="text" name="email" id="email" placeholder="Email address"><br>
<input type="submit" value="Check!">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我只使用函数filterEmail它工作正常,但当我同时使用它们(甚至只使用filterPhone!)时它会给我一个错误:"TypeError:pattern.test不是一个函数" …
我最近遇到过这段JavaScript代码:
if (",>=,<=,<>,".indexOf("," + sCompOp + ",") != -1)
Run Code Online (Sandbox Code Playgroud)
我很好奇,因为写这个测试我会做的:
if (/(>=|<=|<>)/.test(sCompOp))
Run Code Online (Sandbox Code Playgroud)
这只是一种风格差异,还是其他代码的作者对优化有所了解,我不知道?或者也许有不同的理由这样做,或者不使用正则表达式......?
在我看来,使用它String.indexOf()有点难以阅读(但是,我对正则表达式很满意),但是有没有比写同等正则表达式"更好"的情况?
通过"更好"可能更快或更有效,(虽然显然取决于浏览器的JavaScript引擎),或者其他一些我不知道的原因.任何人都可以开导我吗?
如何LIKE在JavaScript中模拟SQL关键字?
对于那些不知道是什么的人LIKE来说,它是一个非常简单的正则表达式,它只支持通配符%,它匹配0个或更多字符,并且_只匹配一个字符.
但是,它不仅可以做以下事情:
var match = new RegEx(likeExpr.replace("%", ".*").replace("_", ".")).exec(str) != null;
Run Code Online (Sandbox Code Playgroud)
...因为图案可能包含点,星星和任何其他特殊的正则表达式字符.
javascript ×10
regex ×7
html ×2
string ×2
coding-style ×1
cookies ×1
jquery ×1
match ×1
optimization ×1
sql ×1
sql-like ×1
substring ×1