【发布时间】:2015-03-15 09:51:56
【问题描述】:
我正在寻找将字符串修剪为一定长度的字符而不剪切单词的答案。我搜索了问题,发现了这个:
javascript shorten string without cutting words
我想使用@Hamish 的答案来替换正则表达式,但遇到了多行文本的问题。
@Hamish 的回答:
"this is a longish string of test".replace(/^(.{11}[^\s]*).*/, "$1");
//"this is a longish"
我搜索了类似的问题,发现点 '.'不包括换行符\n。通常可以在末尾结束一个 's' 以使点也匹配换行符,但在 javascript 中这显然不起作用。 我在其他线程中读到我应该使用 [\s\S] 来匹配任何字符。 所以我尝试像这样使用@Hamish 的正则表达式:
infotext = infotext.replace(/^([\s\S]*{10}[^\s]*).*/, "$1");
然后我收到一条错误消息:
Uncaught SyntaxError:
Invalid regular expression: /^(\[\s\S\]*{10}[^\s]*).*/: Nothing to repeat.
谁能帮我解决这个问题。我真的找不到匹配任何角色的解决方案...... 提前谢谢。 M
【问题讨论】:
-
您能否发布 infotext 的内容,以便我们重现问题。
-
*已经是一个转发器,您不能在它之后使用{10}指定另一个转发器。这相当于指定**或??。如果你仔细想想,说“重复多次 (*),然后正好重复 10 ({10}) 次”是没有意义的。 -
嘿 Merc。如果您接受您提出的问题的答案,那就太好了。因为这就是人们首先回答你的原因。我确信您的问题的答案已经提供。
-
@Manticore 你是绝对正确的。我只是没有时间再次讨论这个问题。由于截止日期非常紧迫,我不得不先解决其他问题。我现在看看。对不起!
标签: javascript regex string trim cut