Javascript 从列表中删除前导字符和尾随字符

Javascript 从列表中删除前导字符和尾随字符,javascript,string,algorithm,Javascript,String,Algorithm,我有一个文本文件,其中的字符串由空格分隔。文本文件包含一些需要从最终输出中丢弃的特殊字符(拉丁语、货币、标点符号等)。请注意,除这些特殊字符外,合法字符均为Unicode字符 我们需要用空格分隔/拆分文本,然后只删除前导和尾随的特殊字符。如果特殊字符介于两个合法字符之间,则我们不会删除它们 我可以分两个阶段轻松完成。按空格分隔文本,然后仅从每个字符串中删除前导和尾随特殊字符。但是,我只需要处理字符串一次。有没有办法,一次就可以做到。注意:我们不能使用正则表达式。 对于这个问题,假设这些字符是特殊

我有一个文本文件,其中的字符串由空格分隔。文本文件包含一些需要从最终输出中丢弃的特殊字符(拉丁语、货币、标点符号等)。请注意,除这些特殊字符外,合法字符均为Unicode字符

我们需要用空格分隔/拆分文本,然后只删除前导和尾随的特殊字符。如果特殊字符介于两个合法字符之间,则我们不会删除它们

我可以分两个阶段轻松完成。按空格分隔文本,然后仅从每个字符串中删除前导和尾随特殊字符。但是,我只需要处理字符串一次。有没有办法,一次就可以做到。注意:我们不能使用正则表达式。 对于这个问题,假设这些字符是特殊的:

[: , ! . < ; '  "  >  [ ] { }  `  ~ = + - ? / ]
[:,!.<;'“>[]{}`~=+-?/]
例如:

:!/,.<;:.?;,BBM!/,.<;:.?;,` IS TALKING TO `B!?AM!/,.<;:.?;,
:!/,.
  • 生成简单状态机(有限自动机)
  • 在所有的角色中走一圈
  • 在每一步检查当前字符是字母、空格还是特殊字符
  • 根据状态和字符类型执行一些操作(可能为空)
  • 如果需要,请更改状态

例如,您可能会一直处于“特殊”状态,直到遇到字母为止。请记住单词的起始索引,并将状态设置为“单词内部”。继续,直到遇到特殊字符或空格为止(您的问题仍然不清楚)。

我使用了typescript,并且一次就完成了。 请注意,isSpecialCharacterCode(charCode)函数只检查文本字符的unicode是否与提供的特殊字符的unicode相同。isWhitespaceCode(charCode)函数也是如此。

parseText(text:string):string[]{
let字:字符串[]=[];
让单词=”;
设charCode=1;
let haveSeenLegalChar=false;//如果在文本中遇到合法字符,请设置它
请参见nspecialcharstoinclude=false;//如果遇到//文本中的特殊字符,请设置它
让inBetweenSpecialChars=“;//包含特殊字符的字符串//可以包含在两个法定单词之间
for(让index=0;index
您能编辑最后一句话吗?示例中有一个字符串吗?也许您可以尝试将其格式化为代码示例,使用4个空格缩进或倒勾“`”。与“!/”有什么问题,。这些都是特殊人物。现在,把这些字符看作是特殊的[],.<,> [{}[}]~+-//],为什么?!在B.AM中是合法的,在BBM之后是不合法的。正如问题所说,我们只需要删除主角和尾部特殊字符。如果这些特殊字符出现在两个合法字符之间,我们就不应该删除它们。