[英]is this correct syntax in jquery/javascript?
在下面的jquery中,在“點”之前應該有一個關閉的paretheses“)”:
“ .test($
...”?
(/^\\s*$/.test($(this).val()))
$(document).ready(function () {
$('#userlogin').css('color', '#cccccc').val('LOGINNAME');
$('#userlogin').blur(function () {
if (/^\s*$/.test($(this).val())) {
$(this).val('LOGINNAME');
$(this).css('color', '#cccccc');
$(this).valid();
}
}).focus(function () {
if ($(this).val() === 'LOGINNAME') {
$(this).val('');
$(this).css('color', '#000000');
}
});
如果沒有,為什么不呢? 那段代碼對我來說有點奇怪。
代碼是正確的:
/^\s*$/ // create a regex
.test( // call the test method on it
$(this) // create a jquery object
.val() // call the val method on it
)
但是,可以緩存該值: var val = $(this).val();
。 然后這條線可能不會讓你感到困惑: /yourregex/.test(val)
/^\\s*$/
是一個正則表達式文字,它有一個被調用的測試方法。 括號來自if條件,它更大。
由於javascript完全面向對象,即使文字也可以有方法。
/^\s*$/.test( $(this).val() )
第一部分是正則表達式 - 不是字符串或其他任何東西。 因此,它以deliminters /
和/
開頭和結尾。
使用.match
有時更清晰,因為它似乎沒有在源中浮動一些奇怪的未綁定項目:
$(this).val().match(/^\s*$/);
這個特殊的表達式,如下所示:
/^ // Beginning of String
\s* // Space, zero or more times
$/ // End of String
因此,如果從開始到結束都有零個或多個空格,那么它將測試為正,而沒有別的。
代碼很好。 如果你認為它不可讀,為什么不先創建正則表達式
var regex = /^\s*$/;
if(regex.test($(this).val())
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.