文字列の先頭からのみ特殊文字を削除したい。つまり、私の文字列が次のような場合は、先頭から{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;
必要なものを達成するために、2つの別々の正規表現オブジェクトを使用しました。文字列の両方の条件をチェックします。あまり効率的ではないことはわかっていますが、目的には役立ちます。
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 @");
}
お役に立てれば