2013-01-15 33 views
1

我想僅從字符串的起始處刪除特殊字符。 即,如果我的字符串像{[email protected]那麼我想從起始處刪除{。字符串應該看起來像[email protected]從字符串的起始處刪除特殊字符並搜索@ symbol.in javascript

但是,如果我的字符串像abc{@xyz.com那麼我想保留相同的字符串,因爲它是,即abc{@xyz.com

另外我想檢查一下,如果我的字符串有@符號存在與否。如果它存在,那麼確定,否則顯示一條消息。

+0

您是否在尋找電子郵件驗證?如果是這樣。檢查這個http://stackoverflow.com/questions/2783672/email-validation-javascript – Surabhi

回答

1

下面演示你指定什麼(或者已經非常接近):

var pat = /^[^a-z0-9]*([a-z0-9].*[email protected]*?$)/i; //pattern for optional non-alphabetic start followed by alphabetic, followed by '@' somewhere 
var testString = "{[email protected]"; //Try with {abcxyz.com for alert 
arr = pat.exec(testString); 
var adjustedString; 
if (arr != null) { adjustedString = arr[1]; } //The potentially adjustedString (chopped off non-alphabetic start) will be in capture group 1 
else { adjustedString = ""; alert(testString + " does not conform to pattern"); } 
adjustedString; 
+0

: - 非常感謝..但如果我在開始時得到多個括號或任何其他特殊字符,例如{#! [email protected]。我想從開始只消除特殊字符(即,直到收到第一個charcater或整數)?任何幫助將不勝感激! –

+0

嗨,我根據你的意見編輯了答案。現在,多個非字母,非數字字符將在開始時被剝離。我這樣做的方式是使用*,如果沒有任何或一個或多個,它將​​匹配0個這樣的字符。 – DWright

1

我用兩個獨立的regex對象來實現你需要.IT檢查均在string.I條件知道它不是非常有效,但它會滿足你的目的。

var regex = new RegExp(/(^{)/); 
var regex1 = new RegExp(/(^[^@]*$)/); 
var str = "[email protected]"; 
if(!regex1.test(str)){ 
    if(regex.test(str)) 
     alert("Bracket found at the beginning") 
     else 
     alert("Bracket not found at the beginning") 
} 
else{ 
    alert("doesnt contain @"); 
} 

希望這有助於

+0

此外,如果你需要電子郵件驗證這裏是一個很好的線程http://stackoverflow.com/questions/46155/validate-email-address-in-javascript。但是,由於帖子建議電子郵件驗證也應該在服務器端進行 – saraf

相關問題