使用正则表达式将Id与字符串分开

时间:2014-06-23 19:16:57

标签: javascript regex

如何从以下字符串中获取ID的第一部分?

sText ='DefId #AnyId #MyId';
sText = sText.replace(/ #.*$/g, '');
alert(sText);

结果应如下:“DefId #AnyId”

非常感谢提前。

3 个答案:

答案 0 :(得分:1)

var sText ='DefId #AnyId #MyId';
var matches = sText.match(/(DefId #.*) #.*/);
if(matches && matches.length > 0) {
    alert(matches[1]);
}

如果您还想要第一个ID之后的空格,请将分组括号右移1个字符。这假设ID不会包含#。

答案 1 :(得分:0)

你可以使用这个正则表达式,

(.*)#.*?$

DEMO

JS代码,

> var sText ='DefId #AnyId #MyId';
undefined
> sText = sText.replace(/(.*)#.*?$/g, '$1');
'DefId #AnyId '

如果您不想在#AnyId之后留下任何空格,请运行以下正则表达式以删除该空格。

> sText = sText.replace(/(.*) #.*?$/g, '$1');
'DefId #AnyId'

答案 2 :(得分:0)

如果您需要在字符串中的最后#之后删除所有内容,请使用:

sText.replace(/#[^#]+$/, '');