1

我只想从字符串的开头删除特殊字符。即,如果我的字符串是这样的,{abc@xyz.com那么我想{从一开始就删除。字符串应该看起来像 abc@xyz.com

但是如果我的字符串是这样的,abc{@xyz.com那么我想保留与它相同的字符串,即abc{@xyz.com

另外我想检查我的字符串是否存在@符号。如果存在,则 OK,否则显示一条消息。

4

2 回答 2

1

以下演示了您指定的内容(或接近):

var pat = /^[^a-z0-9]*([a-z0-9].*?@.*?$)/i; //pattern for optional non-alphabetic start followed by alphabetic, followed by '@' somewhere
var testString = "{abc@xyz.com"; //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;
于 2013-01-15T06:26:01.677 回答
1

我使用了两个单独的正则表达式对象来实现您的要求。它检查字符串中的两个条件。我知道它不是很有效,但它会满足您的目的。

var regex = new RegExp(/(^{)/);
var regex1 = new RegExp(/(^[^@]*$)/);
var str = "abc@gmail.com";
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 @");
}

希望这可以帮助

于 2013-01-15T07:07:04.953 回答