Javascript 使用字符串方法查找文本中的标点符号

Javascript 使用字符串方法查找文本中的标点符号,javascript,regex,string,Javascript,Regex,String,如何确定标点符号(?;)或“何时使用正则表达式: var text = corpus.split(/[(?!;.)<]/g); var text=corpus.split(/[(?!;)使用正则表达式: var text = corpus.split(/[(?!;.)<]/g); var text=corpus.split(/[(?!;)您可以从RegExp开始,根据每个字符对其进行加权,并从本质上比较ascii代码。split是另一种方法(就在上面) 正则表达式解 functi

如何确定标点符号(?;)或“何时使用正则表达式:

var text = corpus.split(/[(?!;.)<]/g);

var text=corpus.split(/[(?!;)使用正则表达式:

var text = corpus.split(/[(?!;.)<]/g);

var text=corpus.split(/[(?!;)您可以从RegExp开始,根据每个字符对其进行加权,并从本质上比较ascii代码。split是另一种方法(就在上面)

正则表达式解

function getTextUpToPunc( text ) {
    const regExp = /^.+(\!|\?|\.)/mg;
    for (let match; (match = regExp.exec( text )) !== null;) { 
          console.log(match);
    }
}
getTextUpToPunc(
    "what a chunky funky monkey! this is really someting else"
)
这里的关键优势在于,您不需要循环整个字符串,也不需要通过执行
regExp.exec(text)
来控制迭代

先前发布的
split
解决方案可以工作,但split将在整个字符串上循环。通常这不会是一个问题,但是如果您的字符串有成千上万个字符,并且您经常执行此操作,那么考虑性能是有意义的

如果此函数将多次运行,那么一个小的性能改进就是记忆RegExp创建:

    const regExp = /^.+(\!|\?|\.)/mg;
像这样的事情

function getTextUpToPunc( text ) {
    if( !this._regExp ) this._regExp = /^.+(\!|\?|\.)/mg;;

    const regExp = this._regExp;
    for (let match; (match = regExp.exec( text )) !== null;) { 
          console.log(match);
    }
}

您可以从RegExp开始,根据每个字符对其进行加权,并从本质上比较ascii代码。拆分是另一种方法(刚刚在上面发布)

正则表达式解

function getTextUpToPunc( text ) {
    const regExp = /^.+(\!|\?|\.)/mg;
    for (let match; (match = regExp.exec( text )) !== null;) { 
          console.log(match);
    }
}
getTextUpToPunc(
    "what a chunky funky monkey! this is really someting else"
)
这里的关键优势在于,您不需要循环整个字符串,也不需要通过执行
regExp.exec(text)
来控制迭代

先前发布的
split
解决方案可以工作,但split将在整个字符串上循环。通常这不会是一个问题,但是如果您的字符串有成千上万个字符,并且您经常执行此操作,那么考虑性能是有意义的

如果此函数将多次运行,那么一个小的性能改进就是记忆RegExp创建:

    const regExp = /^.+(\!|\?|\.)/mg;
像这样的事情

function getTextUpToPunc( text ) {
    if( !this._regExp ) this._regExp = /^.+(\!|\?|\.)/mg;;

    const regExp = this._regExp;
    for (let match; (match = regExp.exec( text )) !== null;) { 
          console.log(match);
    }
}

谢谢,函数运行得很好。我得到了我想要的结果。:-)不幸的是,我不能给你评分,因为我是新来的,我没有足够的分数给某人评分。没问题,谢谢你的解决方案评分,希望这对你有用,干杯!谢谢,函数运行得很好。我得到了我想要的结果。:-)不幸的是,我不能给你评分,因为我是新来的,我没有足够的分数给某人评分。没问题,谢谢你的解决方案,马克,希望这对你有用,干杯!