2011-10-04 47 views
0

是否有任何方法可以在2个符号之间提取文本?我已被告知使用方法:提取2个符号之间的字符或单词

var email = "[email protected]"; 
document.write(email.substring(.,@)); 

使用子似乎只与性格,而不是符号的位置工作。我只是想提取“。”之间的字符。和 “@”

+0

使用'indexOf()'。 –

回答

0

你可以使用RegExp

var email = "[email protected]"; 
email.replace(/.+\.(.+)@.+/, '$1'); // surname 

或者你可以使用子:

email.substring(email.indexOf('.')+1, email.indexOf('@')) 
+0

你的两种方法并不完全等价。考虑输入'first.middle.last @ someplace' – NullUserException

+0

感谢您的快速答案也:) :)两个工作:) – JammyDoger

+0

@JammyDoger仅供参考,'indexOf'解决方案将给''middle.last'首次使用时'。 middle.last @ email.com',而正则表达式解决方案只给出'last'(尽管你可能不想在这里使用'.replace') – NullUserException

1

当然,你可以使用正则表达式:

var lastname = email.match(/[.]([^.]+)@/)[1] 

说明:

[.]  # match dot literally 
(  # open capture group 
    [^.]+ # match anything other than a dot 
)  # close capture group 
@  # match @ character 
+0

谢谢你的快速回答:)但我必须使用子字符串,虽然你的答案工作:) – JammyDoger

相关问题