2013-03-15 30 views
2

我有一個搜索功能。我想檢查用戶是否輸入帶有點(。)的文本字/句子。使用正則表達式匹配帶點符號的單詞javascript

Example: 
-anyword.anyword. 
-. 
-.anyword 

有一次,我發現他/她進入在其上有一個點,我會考慮爲無效的值。

我知道我可以使用regexp來做到這一點,但我仍然在學習它。所以任何人都可以在這裏給我一個亮點,不勝感激:)。

+4

'如果(/\./.test(str)){...}' – elclanrs 2013-03-15 07:51:46

+1

@elclanrs,這是一個答案... – gdoron 2013-03-15 07:52:34

+0

測試你與http://www.gskinner.com/正則表達式RegExr /因爲其易於使用和有益的學習。 – 2013-03-15 07:53:24

回答

5

您可以使用String#indexOf

if (theString.indexOf(".") !== -1) { 
    // It has a dot 
} 

但是,如果你真的想使用正則表達式(這將是矯枉過正的只是找到一個.):

if (/\./.test(theString)) { 
    // It has a dot 
} 

/\./部分是定期表達。開始和結束/是正則表達式分隔符,如"'是用於字符串。正則表達式的內容\..之前我們需要反斜槓,否則在正則表達式中,.表示「匹配任何字符」。它之前的反斜槓「逃脫」它並告訴正則表達式與字面匹配。 (我們不需要,在String#indexof例子,因爲indexOf不具有任何.特殊處理。)

2

最好採用String然後RegexpindexOf功能這是Regexp將在此scnerio矯枉過正:

使用MyString.indexOf('.')如果它返回-1字符串中沒有點。如果返回值是一些像0,1,2等的整數,它給出了字符串中Dot的位置。所以-1告訴,有沒有點

例子:

if(MyString.indexOf('.') === -1) 
{ 
    //No Dot is there, continue search 
} 
else 
{ 
    //Invalid string, dot is present 
} 
1

試試這個

indexOf()方法返回一個字符串指定值的第一次出現的位置。

如果搜索的值永遠不會發生,則此方法返回-1

var str = "test.test"; 
if(str.indexOf('.') === -1){ 
    alert("no dot found."); 
} 
else{ 
    alert("dot found."); 
} 
相關問題