如果這看起來像一個愚蠢的問題,我表示歉意,但是如何搜索一個字符串以查看它是否包含句點?我嘗試過搜索:檢測一個字符串中是否存在句點
var p="This is text without a period, What now?"
alert(p.search("."));
我的印象是它應該返回-1,因爲這句話沒有句號。然而,它總是返回0.
我錯過了什麼嗎?
如果這看起來像一個愚蠢的問題,我表示歉意,但是如何搜索一個字符串以查看它是否包含句點?我嘗試過搜索:檢測一個字符串中是否存在句點
var p="This is text without a period, What now?"
alert(p.search("."));
我的印象是它應該返回-1,因爲這句話沒有句號。然而,它總是返回0.
我錯過了什麼嗎?
有很多方法可以做到這一點,我可能會使用indexOf()只是爲了看看一個字符的字符串存在:
alert(p.indexOf(".") != -1); // true or false
根據MDN,search()「執行的正則表達式之間的匹配搜索。而這個String對象「,所以這將是:
alert(p.search(/\./));
這將使你-1
和週期具有特殊意義的正則表達式,必須逃脫。字符串的這個
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/indexOf
太好了。謝謝。我忘記了indexOf功能...一旦他們讓我......我會標記它正確... – user1470118 2013-05-02 15:01:45
@Yatrix它快速上升,因爲有7個人打字相同的答案,他只是提交最快的。 :) – 2013-05-02 15:04:24
@KevinB仍然讓我瘋狂嫉妒! – Yatrix 2013-05-02 15:06:43
使用indexOf()
方法。爲了避免JavaScript Regex中的點,你需要將它「投射」到一個字符類。這是通過[]
完成的。
alert(p.search("[.]"));
如果你想堅持到正則表達式,你需要躲避.
,因爲它是一個特殊的正則表達式字符
僅供參考,該'search'方法是正則表達式搜索,而不是一個字符匹配。在正則表達式中,'.'匹配*任何*字符,包括第一個「T」。 – 2013-05-02 15:02:37
啊,這就解釋了!感謝那。 – user1470118 2013-05-02 15:03:46