正则表达式 - 查找数字的位置并删除它周围的括号

时间:2011-03-17 15:28:39

标签: javascript regex

我被困住了。我用正则表达式尝试了它,但我想我错过了一些东西。我正在使用JavaScript。

我有一个输入:

(text [number]) the text that follows...

我想输出如下:

[number] the text that follows...

我用substr尝试过,但我的问题是我不知道括号中文本或数字的长度。我想我需要数字开头和结尾的位置才能使用regEx。

你有个主意吗?

3 个答案:

答案 0 :(得分:0)

有一个真实的例子,但我做了一个......

文本:

(Some text 1234) some more text.

正则表达式:

^.+?(?<Number>\d+)\)(?<Text>.+)$

的更换:

${Number}${Text}

完整示例:

var fixedText = "(Some text 1234) some more text.".replace(/^.+?(?<Number>\d+)\)(?<Text>.+)$/, "${Number}${Text}");

答案 1 :(得分:0)

匹配(text [number]) the text that follows...的正则表达式可以是:

"^\(.*?([0-9]*)\)(.*)$"

或者您可以匹配开头(和结尾))并将其删除

"^(\(.*?)[0-9]*(\)).*$"

答案 2 :(得分:0)

正则表达是可行的方法 - 使用JavaScript的replace函数,您无需在字符串中摆弄数字的位置。

试试这个:

var geoff = '(text 694) the text that follows...';
var geoff_replaced = geoff.replace(/\([^0-9]* ([0-9]*)\)/, '$1');

# geoff_replaced will be "694 the text that follows...

我没有做很多JavaScript正则表达式的东西,所以我在本指南中完全看了上面的JavaScript正则表达式: