我对此SO感到很满意,并希望设置字数。因此,我必须将表达式创建为String并使用new RegExp()
。所以我稍微更改了代码段并使用了新的RegExp
对象
原单
var t = "this is a longish string of text";
t.replace(/^(.{11}[^\s]*).*/, "$1");
//result:
"this is a longish"
使用RegExp
var t = "this is a longish string of text";
var count = 11;
t.replace(new RegExp('^(.{' + count + '}[^\s]*).*'), "$1");
//result:
"this is a longi"
正如您所看到的,第二个结果不是预期的结果。任何提示在使用文字和使用RegExp对象之间有什么不同。
答案 0 :(得分:6)
在字符串中,您需要转义反斜杠:
new RegExp('^(.{' + count + '}[^\\s]*).*')
(您可以使用\S
代替[^\s]
):
new RegExp('^(.{' + count + '}\\S*).*')