gpt4 book ai didi

javascript - 复杂拆分正则表达式

转载 作者:行者123 更新时间:2023-11-29 10:50:46 24 4
gpt4 key购买 nike

问题

我在使用正则表达式时遇到问题。

我有一组字符串。

示例字符串

@param* URL url './' an absolute URL giving the base location of the image
@param* Function callback callback(indexInArray, valueOfElement) The function that will be executed on every object.
@param Function callback Null The function that will be executed when the image is clicked
@param String name 'this is a test name' the name to use when displaying the image
@param String name "this is a test name" the name to use when displaying the image

我将它们拆分在新行上以给我单独的字符串。

var match = val.split("\n");

这些字符串中的每一个都可以分解为五个值:

变量

示例:@param Function callback Null 点击图片时执行的函数

@param = required;
Function = type;
callback = name;
Null = default;
The function that will be executed when the image is clicked = description.

我需要的是将这个字符串分解成多个部分,同时考虑到所有不同的字符串可能性,我很难创建可以拆分所有不同默认和描述可能性的正则表达式。

当它是双引号或单引号中的字符串或者当它是函数符号时,我在尝试获取 defaultValue 时遇到了一个特殊的问题。

代码

这是我目前的工作代码;

$.each(match, function(index, value) {
var part = value.split(/\s/); //TODO need a regx to split this string correctly

var required = part[0];
var type = part[1];
var name = part[2];
var defaultValue = part[3];
var description = part[4];
});

总结

我需要一个单步或多步正则表达式,可以将上述所有五个示例分解为相同的五个变量。

编辑:我很抱歉没有尝试正则表达式,但我不确定从哪里开始。

最佳答案

这没有使用任何正则表达式,但我认为它更容易理解和维护。另外,我确信执行 if 语句有稍微更优雅的方法,但这是我一时兴起的方法。 http://jsfiddle.net/CcAus/

$.each(match, function(index, value) {
var part = value.split(' ');

var required = part.shift();
var type = part.shift();
var name = part.shift();
if(part[0][0]=='\''||part[0][0]=='"'){
part = part.join(' ');
var defaultValue = part.split(part[0][0]+' ',1)+part[0][0];
part=part.replace(defaultValue,'')
var description = part;
}
else{
var defaultValue = part.shift();
var description = part.join(' ');
}
});

关于javascript - 复杂拆分正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10670412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com