我只想从字符串的开头删除特殊字符。即,如果我的字符串是这样的,{abc@xyz.com
那么我想{
从一开始就删除。字符串应该看起来像 abc@xyz.com
但是如果我的字符串是这样的,abc{@xyz.com
那么我想保留与它相同的字符串,即abc{@xyz.com
。
另外我想检查我的字符串是否存在@符号。如果存在,则 OK,否则显示一条消息。
我只想从字符串的开头删除特殊字符。即,如果我的字符串是这样的,{abc@xyz.com
那么我想{
从一开始就删除。字符串应该看起来像 abc@xyz.com
但是如果我的字符串是这样的,abc{@xyz.com
那么我想保留与它相同的字符串,即abc{@xyz.com
。
另外我想检查我的字符串是否存在@符号。如果存在,则 OK,否则显示一条消息。
以下演示了您指定的内容(或接近):
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;
我使用了两个单独的正则表达式对象来实现您的要求。它检查字符串中的两个条件。我知道它不是很有效,但它会满足您的目的。
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 @");
}
希望这可以帮助