我有一个简单的循环来删除文本末尾的所有单词,这些单词以#
和space
开头。
AS3:
// messageText is usually taken from a users input field - therefore the newline is not present in the "messageText"
var messageText = "hello world #foo lorem ipsum #findme"
while (messageText.lastIndexOf(" ") == messageText.lastIndexOf(" #")){
messageText = messageText.slice(0,messageText.lastIndexOf(" "));
}
如何检查#
之前的位置不是空格而是换行符?
我试过了,但没有找到任何结果:
while (messageText.lastIndexOf(" ") == messageText.lastIndexOf("\n#")){
messageText = messageText.slice(0,messageText.lastIndexOf(" "));
}
答案 0 :(得分:1)
classpath
另请参阅:this previous (dupe) post。
首先,我会手动尝试将“\ n”替换为“\ r \ n”,然后使用“\ r \ n”来查看是否还有其他换行符正在使用中。如果是这样,那么您只需要一个更好的搜索词,一次匹配每个版本。
更好的解决方案可能是使用正则表达式(RegExp)。您正在显式查找换行符和后面的空格。您可以使用此正则表达式模式查找具有单个空格的行的开头:
\n is the newline character in the Unix file definition.
\r\n is the Windows version.
\r is the OSX version.
^克拉字符强制它是一条线的起点。 \ s是任何空格字符的占位符,因此如果您不想匹配制表符,请将其更改为空格。 (我不熟悉ActionScript,但是如果没有找到模式,那么语法看起来没问题,search()将返回-1。